学习元编程的语言

Eru*_*rup 16 programming-languages metaprogramming

在您看来,学习和使用元编程的最佳语言(在简单性,可读性和代码优势方面)是什么?

我认为元编程是"编码的未来".不是说代码会灭绝,但我们可以看到这种情况会出现在新技术上.

Jay*_*Jay 9

首先 - 我认为我不同意你的观点,即"元编程是'编码的未来'".这是一个伟大的工具,但不是每个人都喜欢它(例如,Java的设计者留下了宏故意的语言-不,我喜欢Java的,但人们有理由反对元编程).

无论如何......我可以想到两种不同的元编程方式:在合成级别和运行时.

对于语法元编程,我认为Scheme是一个很好的选择(如果你没有提到简单性等我建议使用Common Lisp).对于运行时元编程,我猜Prolog和Smalltalk都非常有趣.(您可以动态添加,更改和删除事实到Prolog数据库;您可以动态更改Smalltalk对象).您也可以在Ruby中执行运行时元编程,但我不了解Ruby.

所以 - Scheme中有几种不同的元编程方法(不同的宏系统).我建议你看看一些基本的Scheme书,然后阅读两个不同的宏系统.

一些好的计划书:

Scheme实现彼此非常不同,因此您也将使用Scheme实现手册.

有些地方要了解Scheme宏:

如果您决定使用比Scheme更大且更混乱的语言,请尝试使用Common Lisp.我建议有三本书:

  • 首先,Peter Seibel的" Practical Common Lisp ".这将使您开始使用Common Lisp和宏;
  • 第二,保罗格雷厄姆的 "论Lisp ".然后,您将了解到宏比您之前想象的更强大,并且将学习非常好的技术;
  • 第三,Doug Hoyte的" Let Over Lambda ".一本高级书籍,最好在格雷厄姆的On Lisp之后阅读.

对于Prolog的,你可以阅读Clocksin和Mellish"在序言编程"(获得最新版本!),后来被温顿,Vellino和纽特移动到"Prolog的编程详解".见第6章.

有很多好的Smalltalk书籍.我喜欢Simon Lewis的"The Small and Science of Smalltalk".有一个非常漂亮的卡诺尔Gokel免费教程/底漆约Smalltalk的太(但它不会去尽可能的教学元编程).


ewe*_*nli 5

元编程是什么意思?元编程是一组概念,而不是一种特定的技术。

在列出各种概念和相关语言的地方,请参见此答案。总结如下:

  • 使用宏进行元编程-> Lisp
  • 使用DSL进行元编程->内部DSL的多种语言,外部DSL则比较棘手
  • 反思-> Smalltalk,Ruby
  • 注释-> Java
  • 字节码或AST转换-> Groovy

有关更多详细信息,请参见完整答案。总的来说,我认为Ruby是一个好的OO全面开发者。否则,任何类似Lisp的任务都可以胜任:就像手中的腻子一样。但这取决于您想做什么...


JUS*_*ION 5

Lisps几乎是各种元编程技术的首选语言.在现有的Lisps中,我建议使用Clojure作为一个更容易访问的Lisp,如果你想要一个既强大立即有用的东西,它可以访问一个积极的巨大的库(Java中的任何东西).

对于元编程的其他方法,几乎​​任何函数式语言都可以解决问题. Haskell是学习技巧和函数式编程的不错选择,但不是我现在称之为实际工作的最实用的语言. Erlang更实用,但不太适合元编程. OCaml是另一种可能的选择,但在实用性方面也有一点不足.然而,它在许多方面比Haskell更容易访问.

在脚本语言世界中,Ruby是一种语言,元编程是一种流行的技术.它的方法模糊地类似于Lisp,但具有更传统的语法.然而,它缺乏Lisp的全部功能和灵活性,但另一方面,除了上面的Clojure之外,它还具有更直接的实用性.


Ada*_*and 2

Ruby 具有非常强大且灵活的元编程功能。

  • Ruby 一直被誉为一种元语言,但它没有结构良好的元编程框架 - 它只是利用其动态特性,就像 Python 一样。恕我直言,学习元编程值得回顾一下元类和自我反思语言,即使常见的做法是使用基于哈希的动态语言。 (4认同)