如果你有时间和意愿去创造一种编程语言,它会有啥特点? [关闭]
Posted
技术标签:
【中文标题】如果你有时间和意愿去创造一种编程语言,它会有啥特点? [关闭]【英文标题】:If you had the time and inclination to create a programming language, what characteristics would it have? [closed]如果你有时间和意愿去创造一种编程语言,它会有什么特点? [关闭] 【发布时间】:2009-11-22 09:39:54 【问题描述】:只是好奇。如果你有时间和意愿去创造一门编程语言,它会有什么特点?
我希望看到的一种语言会尽可能多地借鉴 Python 的语法,但编译成运行速度与 C 或 C++ 一样快的机器代码。
【问题讨论】:
你见过围棋吗? golang.org 还是 Psyco? psyco.sourceforge.net 请把它变成一个社区维基 我不是故意要争论的。 :-P 【参考方案1】:我会将我的语言限制在一个陈述中:
Solve my problem.
也许我会添加一个修饰符,以防万一:
Solve my problem, please.
【讨论】:
...对不起,但我无法抗拒。【参考方案2】:COBOL 和 XML 的混合,用于 lulz
<program>
<data>
<const>
<name>myStr</name>
<value><[CDATA[Hello, World!]]></value>
</const>
</data>
<sub>
<name>main</name>
<params />
<return />
<code>
<call>
<name>writeline</name>
<params>
<var>myStr</var>
</params>
<giving />
</call>
</code>
</sub>
<meta>
<entrypoint>main</entrypoint>
</meta>
</program>
【讨论】:
查看我添加的 hello world ;) 哦,当然。它甚至已经支持企业!【参考方案3】:程序员将能够显式设置变量的类型。并且以一种很酷的方式进行争论,例如
(string str, array(int)|int someint_or_more, any some_strange_argument)
类似这样的:)
程序员至少可以像在 JS 中一样使用 lambda、闭包等
它将具有基于原型的 OOP(如在 JS 中) 块(如果 ... 等)会像闭包一样工作! 它将有一个特殊的关键字来定义一个返回常量值的函数(如果参数没有改变),因此它可以被编译器/解释器缓存,而无需任何程序员考虑。这将非常有用,您几乎可以对任何事情使用递归,而且性能不会太差!【讨论】:
【参考方案4】:它应该是快速和轻量级的(不像 .NET Framework),但您仍然应该能够创建功能齐全且灵活的 GUI 应用程序。
【讨论】:
【参考方案5】:一个简单的块,用于定义可以并行运行的东西,所以如果我写:
parallel
do_x();
do_y();
something_else();
do_x() 和 do_y() 将并行执行,但 something_else() 将仅在它们都完成后运行。
【讨论】:
不久前我写过这样的脚本语言。我称它为 psh 或“pourne shell”作为带有并行 for 循环的 bourne shell。它对我来说非常有用。我应该清理我拥有的页面并将回购放在某个地方。 我只是希望我可以在 C++ 或 Java 中做到这一点。编写并行执行的东西并不是困难,它只是比这种简单的事情需要更多的努力。 您可以在 C++ 中完成 - 编写您的函数模板parallel()
,例如多个boost::function
作为参数。
我在 90 年代初为 VAX/VMS 写过类似的东西。我们有一个项目,其构建时间大约需要 6 或 7 小时,因此我编写了一个处理器,该处理器将基于构建脚本中的 !FORK
和 !JOIN
cmets 将其分布在 8 或 9 个 uVAX 上 - 将构建缩减为大约一个小时。以上是关于如果你有时间和意愿去创造一种编程语言,它会有啥特点? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章