编程语言需要哪些功能?

时间:2011-03-17 20:09:44

标签: compiler-construction programming-languages language-design language-features compilation

最近我的大学为本科生设置了大型项目。其中一个项目是创建一种新的编程语言,其中包含其他语言的所有最理想的部分。现在,我知道很多事情对我来说是非常不可行的(或者甚至是密切的) - 例如,使语言非常接近自然语言。

有一些很好的功能,比如高阶函数和交换两个变量值的运算符。然而,我很难想到很多,所以一些建议将非常感激 - 最好的建议被标记为答案。我只是在这里寻找想法,而不是如何实现它们的方法。

4 个答案:

答案 0 :(得分:5)

我喜欢的功能:

  • 关联数组,所以我可以做price["apple"] := 0.99
  • 之类的事情
  • for-each循环所以我不必担心索引集合中不存在的元素
  • :=运算符用于分配,而不是=;)
  • switch-case语句,允许除数值之外的其他内容,例如:case "apple": price := 0.99
  • 数字/日期范围作为有效数据类型。
  • 具有命名参数和默认值的函数
  • 对正则表达式操作的本机支持(如Perl)

答案 1 :(得分:0)

多重继承会很好......尽管它在任何当前语言中都不可用。

答案 2 :(得分:0)

最强大的一个:

  • 动态类型
  • 不隐藏任何内容的语言
  • 作为一等公民的功能。 (允许使用函数式编程)
  • 运行时内省
  • 语言允许过载默认功能和对象。
  • 元编程
  • 动态代码生成
  • 用这种语言扩展语言(只有lisp有这个)

答案 3 :(得分:0)

目前,我渴望获得像JavaScript eval这样的语言功能,它具有执行eval'指令序列的额外功能:

execute_THIS( a += b; c = myfunc(a); if c < 0 exit(); );

也就是说,语言运行时可以解释和执行用该语言编写的语句。

- p