Programming languages 如何描述一种忽略实现而只描述行为的语言

Programming languages 如何描述一种忽略实现而只描述行为的语言,programming-languages,declarative-programming,Programming Languages,Declarative Programming,我想问人们如何描述一种基本上描述程序行为而不是实现的编程语言,即一种忽略实现问题的语言(例如,只有一个类或函数,而其他语言可能有不同的类或函数,它们以不同的方式完成相同的任务),而完全依赖于自动优化 “声明性”是正确的术语吗?可能是“有意的”?“目标导向”这个术语似乎也有类似的含义。可能是其他的。我想知道的是,我正在设计的一个名为利马的语言符合这个描述().我知道Stack Overflow喜欢有答案的东西,所以答案会留给评论最深刻的人 我还想知道人们认为这个想法与paul graham的百年语

我想问人们如何描述一种基本上描述程序行为而不是实现的编程语言,即一种忽略实现问题的语言(例如,只有一个类或函数,而其他语言可能有不同的类或函数,它们以不同的方式完成相同的任务),而完全依赖于自动优化

“声明性”是正确的术语吗?可能是“有意的”?“目标导向”这个术语似乎也有类似的含义。可能是其他的。我想知道的是,我正在设计的一个名为利马的语言符合这个描述().我知道Stack Overflow喜欢有答案的东西,所以答案会留给评论最深刻的人

我还想知道人们认为这个想法与paul graham的百年语言的想法有多接近:。我喜欢他建议我如何将字符串作为字符列表来处理,并放弃数组而采用更通用的“哈希表”(即关联数组),这是我第一次想到它时在利马做的事情

利马背后的基本理念是:

  • 基于值的编程-摆脱任何关心值是什么“类型”的逻辑。Lima中没有类型,值只是值。类型仍然存在于语言中,但只是约束变量可以采用哪些值-它们不能更改调用哪个多方法,也不能指定值的内存占用

  • 描述性编程——我在上面描述的是一种编程语言,它不需要(实际上也不需要)在代码本身中优化代码(而应该使用自动优化器进行优化)

  • 总语言可扩展性-能够用语言本身编写语言中的任何结构(例如,不仅能够重写'sin'函数,还能够重写'if'语句、循环语句,并创建可在语言内和其他DSL内使用的自定义DSL)


  • 我会称之为规范,所以我想我会把它归类为一种规范语言


    不久前,我不得不开发一些程序。在Prolog中,您只需指定函数必须解决的问题,引擎就会为您生成代码。不过,我讨厌它。

    我将其称为规范。因此,我想我会将其归类为一种指定语言


    不久前,我不得不开发一些程序。在Prolog中,你只需指定函数必须解决的问题,引擎就会为你生成代码。但我讨厌它。

    我认为这个问题更适合你,你可能是对的,我应该在这里去掉它并移动它吗?我将它移动到closeWow nevermind,并投票选择closeWow nevermind。我是否随机运行into一堆老二还是什么?抱歉建议把它移到那里:(.我认为这个问题更适合你可能是对的,我应该把它移到这里,然后把它移走吗?我把这个移到了closeWow nevermind,并投票给closeWow nevermind。我是不是在那里随机遇到了一堆老二还是什么?抱歉建议把它移到那里:(.Heh,有时以命令式方式指定某些内容更容易。Lima看起来更像C风格的语言(即使用命令式编程来指定输出),因此我不会将其称为规范语言。Heh,有时以命令式方式指定某些内容更容易。Lima看起来更像C风格的语言(也就是说,您主要使用命令式编程来指定输出),因此我不会将其称为规范语言。