MSH解释器实施。 我想向尊敬的公众介绍新编程语言MSH的解释器。 我已经在Habr上写过有关他的文章。 最后一个是
MSH解释器 。 本文具有该主题以前的文章的链接。
实际上,当地公众对这种创造力持怀疑态度。 但这是不公平的。 成功的编程语言可以极大地推动整个IT行业的发展。 减少开发工作量。 我开始发展自己的语言,以满足自己的志向。 我相信没有成功的编程语言。 这是非常必要的。 而且,没有语言,但是有语言意识形态。 该思想包含在MUMPS语言中。 但是作为一种编程语言,它并不存在。 它仅用作数据库语言,这极大地限制了其应用范围。 我认为,这种情况的发展是由于数据库开发人员的贪婪以及其他所有人对这种语言的潜力缺乏了解。 MUMPS现在作为1995年标准存在。 当然,这种形式早已过时了。 已经出现了必须具有现代语言的新编程概念。 我承诺开发这种语言。 在这种情况下,有必要保持MUMPS的意识形态。 意识形态是代码和数据的统一。 语言不仅基于数据,还基于数据结构。 这是一个相当强大的结构。 这是一棵树。 所有其他结构均以树为模型。 在退化的情况下,一棵树可能包含一个顶点。 实际上,代码和数据之间的界线是短暂的。 大号
程序逻辑既可以放在代码中,也可以放在数据中。 在代码和数据之间划清界限的位置取决于程序员。 我试图将所有程序逻辑放入数据中。 程序只是绕过数据树并在那里执行命令。 代码当然没有消失,但是程序的结构不在主程序之内。 这种程序的灵活性很高,但是要理解这种程序根本是不可能的。 因此,代码和数据构成了统一。 此外,数据结构相对于数据内容而言是主要的。 分离成编程语言和数据库是不自然的。
在设计信息系统时,程序主要操作数据结构而不是内容。 该内容仅在算术运算时才有意义。 内容的次要性质表明不需要数据类型。 数据类型是由计算机体系结构和翻译程序的不完善所产生的。 数据类型与信息系统的有意义无关。 显然,这简化了编译器和IDE,但这仅是次要的。 产生数据类型的问题远远超过了它们提供的好处。 这并不意味着您不需要控制数据的内容。 但这仅应在从外部接收数据时进行。 变量类型对此没有帮助。 数据内容的多样性远远超出了编程语言的基本类型。 它不仅可以是数字,还可以是各种类型的字符串。 数字可能有各种限制。 在任何情况下,都必须检查输入数据的正确性。 因此,基本类型与数据内容几乎没有关系。
现代语言应支持OOP。 由于语言中缺少说明性部分,因此我不得不将自己限制为仅执行类描述的一部分。 但是该语言没有施加编程风格。 您要使用对象,不想不使用。 事件处理在汇编程序中被广泛使用。 DOS都是基于事件处理构建的。 在高级语言中,我不知道使用这种技术的情况。 虽然她有很高的潜力。 语言中没有事件处理功能,迫使程序使用各种消息处理周期。 一个相当笨拙的解决方案,在尝试在循环内执行某种处理时会引起很多问题。 并行处理任务已在各处使用,但在许多语言中,在语言级别均不支持并行处理。 这使得程序依赖于OS及其版本。 我认为,这种决定所造成的损失是显而易见的。
这是建立MSH语言的意识形态。
- 代码和数据结构的统一,这意味着该语言具有强大的数据结构。
- 缺少数据类型,因此缺少它们的声明。
- 语言中包含了现代编程技术。 在MSH中,这些是对象,事件处理和任务的并行执行。
对这种语言感兴趣的人可以在github上熟悉它 。
列出了源代码和一个工作示例。 语言方面的工作才刚刚开始,还不是最终产品。 但是我认为您可以对这种语言有所了解。 该语言是在Linux x64中开发的。