【问题标题】:Questions on the making of programming lanuages关于编程语言制作的问题
【发布时间】:2011-08-04 14:27:25
【问题描述】:

我是编程新手。但我想知道编程语言是如何开始的;我是 Windows 操作系统用户,一切似乎都如此庞大。所以,我的问题是,程序员如何从那个空白屏幕开始构建自己的编程语言。

另外,有很多新的语言吗?有自制的吗?

【问题讨论】:

  • 绝大多数程序员不会创建自己的编程语言。他们使用现有的。
  • 我明白,这不是我的问题..
  • @Roger Lipscombe,他们不创造自己的语言,但他们应该开始这样做。面向语言的编程比任何其他已知的设计方法都强大得多。
  • 如果你想要一个非常自下而上的理解,你可以从 NAND 门开始stackoverflow.com/questions/1224617/…
  • @SK-Logic,那么我们处于特定领域的语言领域,虽然我不愿同意你关于“比任何其他已知的...更强大...”的观点,但我同意它们非常有用。

标签: programming-languages


【解决方案1】:

我不完全理解你的主要问题,但我可以告诉你,每个月都会有新的编程语言出现 :-) 他们中的很多人从来没有看到(公开的)光芒,而且很多都是非常特定于较小的领域。但没有确切的统计数据。

可以在Wikipedia 上找到列表。

【讨论】:

  • 甜蜜!谢谢。我怎样才能制作自己的语言?即使只是一些不重要的小项目,也可能永远不会得到公众的认可。我只是想为自己尝试一下。
  • 当您刚接触编程时,我建议您不要开始创建自己的编程语言。这很复杂,因为您还必须创建一个编译器。但是您可以在msdn.microsoft.com/en-us/magazine/cc136756.aspx 找到一些有用的信息
  • 谢谢,我想我不会马上尝试,是的;虽然我想调查一下,主要是为了了解幕后发生的事情。
  • @James Litewski,由于您是编程新手,因此您的优势在于不受错误思维方式的破坏。所以你可以开始学习 SICP (en.wikipedia.org/wiki/…)。一旦你读完这本书,你就会知道如何制作自己的语言。
【解决方案2】:

要提出一种新的编程语言,您首先需要提出它的formal grammar。使用形式语法,您可以决定诸如您的真/假变量是否将被称为 bool 或 boolean 或 Boolean (过度简化的示例)。

一旦语法到位,您就可以使用已知的编程语言编写程序,该语言使用语法规则将代码行作为输入并生成机器可执行代码作为输出。这样的程序称为编译器。机器可执行代码通常特定于它将在其上运行的机器,例如如果它是 intel 处理器,那么您的编译器需要生成符合 intel 的汇编语言。

因此,在设计自己的语言之前,您需要学习的最重要的计算机科学课程是计算机体系结构、自动机理论和编译器构造,然后您需要学习一些有关您计划使用的硬件的汇编语言的知识运行你的程序,最后是一种低级编程语言,比如 C,它可以帮助你编写新的编译器。

【讨论】:

  • 我认为语法(以及一般的语法)是编程语言中最不重要的部分。所有编译器构建教科书至少有一半的页面用于解析,这只是一个糟糕而顽固的传统。
  • 那你有什么建议?
【解决方案3】:

要编写程序,您需要一个程序!

这就是你要做的: 1)决定你的语言会是什么样子(语法) 2)编写解析器(将程序员键入的文本变成解析树) 3) 将解析树的内容变成你的目标 CPU 可以理解的 1 和 0。 4) 将这一切打包到您的操作系统期望的可执行文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2015-08-06
    • 2020-07-25
    相关资源
    最近更新 更多