怎么理解元编程?

常看到元编程这个字眼,怎么理解元编程。希望别复制粘贴答案。

回复内容:

Meta- 这个前缀在希腊语中的本意是「在…后,越过…的」,类似于拉丁语的 post-,比如 metaphysics 就是「在物理学之后」,这个词最开始指一些亚里士多德的著作,因为它们通常排序在《物理学》之后。

但西方哲学界在几千年中渐渐赋予该词缀一种全新的意义:关于某事自身的某事。比如 meta-knowledge 就是「关于知识本身的知识」,meta-data 就是「关于数据的数据」,meta-language 就是「关于语言的语言」,而 meta-programming 也是由此而来,是「关于编程的编程」。

弄清了词源和字面意思,可知大陆将 meta- 这个前缀译为「元」并不恰当。台湾译为「后设」,稍微好一点点,但仍旧无法望文生义。也许「自相关」是个不错的选择,「自相关数据」、「自相关语言」、「自相关编程」——但是好像又太罗嗦了。

Anyway。先看看 meta-data:

「我的电话是 +86 123 4567 8910」
——这是一条数据;
「+86 123 4567 8910 有十三个数字和一个字符,前两位是国家代码,后面是一个移动电话号码」 —— 这是关于前面那条数据的数据。

那么照猫画虎,怎样才算 meta-programming 呢?泛泛来说,只要是与编程相关的编程就算是 meta-programming 了——比如,若编程甲可以输出 A – Z,那么写程序甲算「编程」;而程序乙可以生成程序甲(也许还会连带着运行它输出 A – Z),那么编写程序乙的活动,就可以算作 meta-programming,「元编程」。注意,程序甲和程序乙并不一定是同一种语言:

('A'..'Z').each do |char|    system("python -c 'print "#{char}"'")end

登录后复制翻译的问题,怎么看都搞不清楚这个元编程怎么翻译过来的
元编程就是编写把要执行的代码当文本进行操作的代码,举个不严谨的例子:
比如你要打从1到5五个数字,用python的话就是

print(1)print(2)print(3)print(4)print(5)

登录后复制元编程是用代码在编译期或运行期生成/改变代码。除非程序的运行期的输入数据会被直接或间接转化成代码,否则元编程不会给程序带来新的逻辑(信息论原理),此时它本质上是一种(让程序员自我感觉良好的)手工压缩源代码技术可以扩展程序自身,这样的能力,为元编程。

比如Ruby,使用元编程可以扩展出领域专用语言DSL, 比如RSpec、puppet、chef等。相对于新创造的领域专用语言DSL来说, Ruby语言就成为其的元语言。

所以, 叫做元编程 。meta-programming

一般代码的操作对象是数据
元编程操作的对象是其他代码就是你写的代码是用来生成代码的元编程之javascript ,祝你能找到答案。就是无关业务逻辑,只跟当前代码结构相关的代码。比如通过在运行时通过java反射把所有Action结尾的类找出来,加上log或者其它动作。或者ruby里的methodingmissing, objc的category等给系统自带的类增强一些特性等。共有的特性就是它们处理的对象是你的代码,不是业务对象。前面各位已经说的很好了,我的理解是

“元编程”比”我们手写代码”多提供了一个抽象层次

贴一篇我认为写的不错的文章
Ruby元编程构造简单优雅解决方案根本就没有元编程,有的只是编程而已
推荐看看《ruby元编程》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2302180.html

(0)
上一篇 2025年2月28日 06:09:06
下一篇 2025年2月28日 06:09:20

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 233乐园怎么下载方法?

    使用以下步骤下载 233 乐园:访问官方网站并单击“下载”。运行安装程序,接受协议并选择安装路径。单击“安装”并启动 233 乐园。 如何下载233乐园? 步骤一:访问官方网站 在浏览器中输入网址:https://store.233.com…

    2025年4月1日
    000
  • 233乐园怎么才能下载

    下载 233 乐园的步骤如下:确认设备符合要求并确保稳定的互联网连接。前往 https://www.233.com/download/,选择与设备操作系统相符的下载链接。下载安装程序并双击开始安装。按照安装向导中的说明选择安装位置,完成后单…

    2025年4月1日
    000
  • 233乐园怎么样下载

    如何下载233乐园?前往233乐园官网或第三方应用商店(微软商店、苹果应用商店、谷歌应用商店);选择与您的操作系统兼容的版本;点击“下载”或“获取”按钮,下载安装程序;运行安装程序,按照提示完成安装。 如何下载233乐园 233乐园是一款流…

    2025年4月1日
    000
  • 233乐园怎么登录账号

    登录233乐园账号步骤:访问官网或客户端点击登录按钮输入账号密码点击登录登录成功 如何登录233乐园账号 登录233乐园账号非常简单,只需以下几个步骤: 1. 打开233乐园官网或客户端 前往233乐园官方网站(https://www.23…

    2025年4月1日
    000
  • 233乐园怎么注销

    通过访问 233 乐园官网注销页面,并填写注销表格(UID、邮箱、注销原因)后,提交注销申请即可。申请通常在 1-7 个工作日内处理,在此期间账户将被冻结。注销不可逆,请谨慎操作。 如何注销 233 乐园账户 步骤: 1. 前往注销页面 打…

    2025年4月1日
    000
  • 233乐园怎么免费下载软件

    233乐园不支持免费下载软件,但可通过以下方式免费使用:1. 网站在线使用;2. 从第三方网站或应用商店下载。 233乐园如何免费下载软件 233乐园目前不支持免费下载软件,但用户可以通过以下方式免费使用软件: 1. 网站在线使用: 访问2…

    2025年4月1日
    000
  • 233乐园怎么免费下载不用登录

    233乐园免费下载无需登录的方法有:访问官方网站下载:http://www.233.com/down/使用第三方应用商店下载(iOS:App Store;Android:Google Play商店等) 233乐园如何免费下载无需登录 直接方…

    2025年4月1日
    000
  • 原来的233乐园怎么删除

    233 乐园账号删除步骤:登录乐园官网,输入账号密码。进入个人资料,选择“安全设置”。点击“删除账号”,输入密码确认。点击“确定”完成删除。 如何删除 233 乐园账号? 步骤: 登录 233 乐园账号。 打开浏览器并访问 233 乐园官网…

    2025年4月1日
    000
  • 233乐园怎么追回

    丢失 233 乐园账号可通过以下步骤找回:联系客服,提供账号信息和身份证明。验证身份后,客服将协助找回账号。找回账号后及时修改密码并加强账号安全。 追回 233 乐园账号的方法 如果您丢失了 233 乐园账号,可以通过以下方法进行找回: 第…

    2025年4月1日
    000
  • 233乐园怎么下载这个软件呢

    通过以下步骤下载 233 乐园: 1. 访问官方网站:https://www.233app.com/。 2. 根据您的操作系统选择对应版本的下载链接。 3. 安装应用程序(安卓版:允许未知来源安装;iOS 版:从 App Store 下载)…

    2025年4月1日
    000

发表回复

登录后才能评论