Lel 或 "Lisp-esque 语言 " 是基于 lisp 的语法,它是一具有 50 多年的编程语言。我会在这里分配一个变量,并声明一个函数。 ( let lifeUniverseAndEverything 42 ) ( function sayHello ( name ) ( print "Hello, " name ". The meaning of life the universe and everything is " lifeUniverseAndEverything ) ) "let" 是分配关键词,这里我说创建一个名为 "LifeUniverseAndEverything" 的变量,并将其值设置为 42,只是对 "sayHello" 进行一个函数定义,并将它设置一个参数,然后发出一个消息。
.jpg)
3_个步骤实现简单语言解释器(自制简易编程语言)
要运行该函数: ( sayHello "Francis Stokes" ) ; -> "Hello, Francis Stokes. The meaning of life the universe and everything is 42"这里有很多括号,原因是因为 Lel 像所有 lisp 派生语言一样使用 S 表达式(S-expression)。要解释什么是 S 表达式,首先要知道一个表达就是一段代码,当它运行时最终变成某种原始值。这里一个原始值可以是一个数字,一个字符串,或者稍微复杂的一个函数引用。然后,S 表达式表示,它被包含在括号中,并且可以包含其他 S 表达式。有趣的是,空格完全是无关紧要的。这意味着:
.jpg)
3_个步骤实现简单语言解释器(自制简易编程语言)
( function sayHello ( name ) ( print "Hello, " name ". The meaning of life the universe and everything is " lifeUniverseAndEverything ) ) 和 ( function sayHello ( name ) ( print "Hello, " name ". The meaning of life the universe and everything is " lifeUniverseAndEverything ) )在 Lel 中都是有效的,但我绝对不会建议格式化代码。使用空格将逻辑部分组合在一起是最有意义的。
.jpg)
3_个步骤实现简单语言解释器(自制简易编程语言)
无论如何,来看看一个 If 判断语句: ( if (.jpg)
3_个步骤实现简单语言解释器(自制简易编程语言)
.jpg)
推荐阅读