python - 图灵完备模板引擎

标签 python ruby perl templates programming-languages

<分区>

哪些模板引擎/模板语言是图灵完备的?到目前为止,我听说过这些:

  • FreeMarker(用 java 实现)
  • MovableTypes 模板语言(perl)
  • xslt :-(
  • Cheetah(Python 语言)
  • 聪明(PHP)

还有其他的(特别是用 perl 实现的)吗?

Ps:不要浪费时间向我解释 MVC,以及为什么图灵完整模板不好,以及为什么这不是一个有用的比较点:)

最佳答案

Perl 的 Template::Toolkit允许 inlining of Perl如果设置了 EVAL_PERL 标志。在模板中,PERL 和 RAWPERL block 允许内联,在某种程度上(在 RAWPERL 的情况下)公开了内部结构,并且内联代码通过 eval()(引用的 eval)进行评估。这提供了对 Perl 解释器的完全访问权限。

Perl 本身被认为有一个 Turing Complete grammar .因此,鉴于 Template::Toolkit 确实提供了对 Perl 本身的访问,模板系统继承了该特性。

虽然将 EVAL_PERL 设置为允许在模板中内联 Perl 被认为是一项高级(并且可能很少使用)的功能,但它适用于坚强的人(并且可能是理智的)。

关于python - 图灵完备模板引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6351765/

相关文章:

python - 从十六进制字符串转换为 unicode

导入 tensorflow 1.7 时 Python 内核死机

ruby-on-rails - Ruby CSV 不读取带引号的字符串中的逗号格式数字

mysql - 如何转换存储的误编码数据?

unit-testing - 有没有办法在你的单元测试中覆盖 Perl "use constant"?

python - 理解 numpy.gradient

python - 我无法通过 pip 安装 kivy

ruby - 为什么 Ruby 的 'gets' 包含结束换行符?

ruby-on-rails - 如何获得 DateTime 持续时间?

mysql - Perl DBI 模块中的操作失败未指示错误