什么语言支持“动态”元编程?

时间:2012-07-07 01:16:35

标签: ruby programming-languages metaprogramming

Metaprogramming Ruby中,作者指出只有少数语言(包括Ruby)可以在运行时自行操作。除了Ruby之外还有哪些其他语言可以支持这种类型的元编程?

我所指的具体引用见第xix页的介绍:

  

在本书中,我将坚持元编程的不同含义,   专注于在运行时操纵自己的代码。只有一点   语言可以有效地做到这一点,Ruby就是其中之一。您可以   把它想象成动态元编程,以区别于它   代码生成器和编译器的静态元编程。

1 个答案:

答案 0 :(得分:6)

现在大多数语言都在朝着提供这种功能的方向发展,但它通常不像红宝石那样“干净”。 所有这些语言都有很多这些功能(reference):

  • 的ActionScript
  • BASIC
  • BeanShell的[3]
  • Clojure的
  • ColdFusion的
  • Common Lisp和其他大多数Lisps
  • Groovy的[4]
  • 电子编程语言
  • 的JavaScript
  • 的VBScript
  • MATLAB / Octave
  • 的Lua
  • 目标C
  • 的Perl
  • PHP
  • Powershell的
  • 的Python
  • 红宝石
  • Smalltalk中
  • 的Tcl

Java和C#等其他语言(reference)有在运行时检查和创建代码的方法,但它并不像那些语言那样“自然”,而且感觉很像黑客。 / p>