如果你有时间和意愿去创造一种编程语言,它会有啥特点? [关闭]

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 上 - 将构建缩减为大约一个小时。

以上是关于如果你有时间和意愿去创造一种编程语言,它会有啥特点? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如果我在实体框架中全局禁用 ProxyCreation 会有啥后果?

巴洛克式建筑和罗马式,拜占庭式有啥区别?

一个矩阵乘以一个向量有啥几何意义,麻烦说详细一点!

Python 和 IPython 有啥区别?

Erlang游戏程序员换语言转行,你有啥好的建议吗?

golang做web网站,对比php python java nodejs等有啥优势