首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习元编程的语言

学习元编程的语言
EN

Stack Overflow用户
提问于 2010-05-21 20:57:25
回答 7查看 7.8K关注 0票数 19

在你看来,学习和使用元编程的最佳语言是什么(就简单性、可读性和代码优雅而言)?

我认为元编程是“编码的未来”。并不是说代码将会消亡,但我们可以看到新技术将出现这种情况。

EN

回答 7

Stack Overflow用户

发布于 2010-05-21 21:21:53

首先--我不认为我同意你所说的“元编程是‘编码的未来’”。它是一个很棒的工具,但并不是每个人都喜欢它(例如,Java设计人员故意将宏排除在语言之外--并不是说我喜欢Java,但人们确实有理由反对元编程)。

不管怎样..。我可以想到两种不同的方式进行元编程:在语法级别和在运行时。

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

因此--在Scheme (不同的宏系统)中有几种不同的元编程方法。我建议你先看看一些基本方案书,然后再阅读两种不同的宏系统。

一些不错的方案书籍:

  • Simply Scheme
  • Teach Yourself Scheme
  • Structure and Interpretation of Computer Programs

Scheme实现彼此之间有很大的不同,因此您也会经常使用Scheme实现手册。

了解Scheme宏的一些地方:

  • http://www.lispforum.com/viewtopic.php?f=22&t=100
  • http://www.ibm.com/developerworks/linux/library/l-metaprog2.html
  • http://chicken.wiki.br/explicit-renaming-macros

如果您决定使用一种比Scheme更庞大、更混乱的语言,请尝试使用Common Lisp。我推荐三本书:

  • First,彼得·西贝尔的"Practical Common Lisp“。这将使您开始使用通用Lisp和Paul Graham的macros;
  • Second,"On Lisp“。然后你会学到宏比你之前想象的更强大,并且会学到Doug Hoyte写的非常好的techniques;
  • Third,"Let Over Lambda“。这是一本高级书籍,最好在格雷厄姆的Lisp之后阅读。

对于Prolog,您可以阅读Clocksin和Mellish的"Programming in Prolog“(获取最新版本!)然后转到Covington,Vellino和Nute的"Prolog Programing in Depth“。参见第6章。

有很多好的Smalltalk书籍。我喜欢西蒙·刘易斯的“Smalltalk的艺术与科学”。关于Smalltalk也有一个非常好的free tutorial/primer by Canol Gokel (但它没有传授元编程那么远)。

票数 11
EN

Stack Overflow用户

发布于 2010-05-21 21:07:14

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

请参阅this answer,在那里我列出了各种概念和相关语言。以下是摘要:

  • Metaprogramming +宏--> Lisp
  • Metaprogramming + DSL -->许多语言用于内部DSL,外部DSL更像tricky
  • Reflection --> Smalltalk,Ruby
  • Annotations --> Java
  • Byte-code或Java
  • Byte-code转换--> Groovy

有关更多详细信息,请参阅完整答案。一般来说,我认为Ruby是一个好的面向对象的全才。否则,任何类似Lisp的is都可以完成这项工作:它就像是您手中的putty。但这取决于你想做什么.

票数 7
EN

Stack Overflow用户

发布于 2010-05-21 21:13:26

Lisp几乎是各种元编程技术的首选语言。在可用的现代Lisp中,如果您想要既强大的又能立即使用的东西,我会推荐Clojure作为一种更易于访问的Lisp,它可以访问一个非常巨大的库(Java语言中的任何东西)。

对于元编程的其他方法,几乎任何函数式语言都可以做到这一点。对于学习技术和函数式编程来说,Haskell是一个很好的选择,但在这个时候,我认为它不是最实用的语言。Erlang更实用,但不太适合元编程。OCaml是另一个可能的选择,但在实用性方面也有一些问题。然而,在许多方面,它比Haskell更容易访问。

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2882199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档