当前位置: 首页 > news >正文

凡科代理建站登录wordpress缩略图压缩

凡科代理建站登录,wordpress缩略图压缩,永嘉网站开发公司,中国建设银行招聘信息网站6超越编程(逾编程)(元编程#xff1f;)(meta-programming) 目录 1. meta- 的词源 2. 逾编程(meta-programming) 的直实含义 2.1 定义 2.2 说明 3. 翻译成“元编程”应该是一种错误 1. meta- 的词源 这是一个源自希腊语的构词元素#xff0c;其有三种含义#xff…      超越编程(逾编程)(元编程)(meta-programming) 目录 1.  meta- 的词源 2.  逾编程(meta-programming) 的直实含义 2.1  定义 2.2  说明 3.  翻译成“元编程”应该是一种错误 1.  meta- 的词源 这是一个源自希腊语的构词元素其有三种含义 (1)  在……之后(after),在…… 后面(behind); 在……之中(among), 介于……之间(between)。   (2)  变更(changed), 改变(altered)。 (3)   higher, beyond; from Greek meta (prep.) in the midst of; in common with; by means of; between; in pursuit or quest of; after, next after, behind, in compounds most often meaning change of place, condition, etc.  (“更高超越”来自希腊语“meta”(介词)“在……之中与……相同通过……的方式介于……之间追求或寻求在……之后紧随……之后”在复合词中经常指地点、条件、等的“改变”。) The notion of changing places with probably led to the senses of change of place, order, or nature, which was a principal meaning of the Greek word when used as a prefix (but it also denoted community, participation; in common with; pursuing). (“交换位置”的概念可能导致“改变地点、秩序或性质”的感觉这是该希腊词用作前缀时的主要含义(但它也表示“社区、参与共同追求”)。) The third, modern, sense, higher than, transcending, overarching, dealing with the most fundamental matters of, is due to misinterpretation of metaphysics (q.v.) as science of that which transcends the physical. This has led to a prodigious erroneous extension in modern usage, with meta- affixed to the names of other sciences and disciplines, especially in the academic jargon of literary criticism: Metalanguage (1936) a language which supplies terms for the analysis of an object language; metalinguistics (by 1949); metahistory (1957), metacommunication, etc.  (第三个现代意义是“高于、超越、统领、处理……的最基本的问题”这是由于形而上学(有形事物之上的学问)被误解为“超越物理的科学”。这导致了现代用法中出现了巨大的错误扩展将“meta”附加到其他科学和学科的名称上尤其是在文学批评的学术术语中元语言1936 年“一种为分析‘对象’语言提供术语的语言”元语言学1949 年元历史1957 年、元交流等。) 2.  逾编程(meta-programming) 的直实含义 2.1  定义 Metaprogramming is a computer programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyse, or transform other programs, and even modify itself, while running.[1][2] In some cases, this allows programmers to minimize the number of lines of code to express a solution, in turn reducing development time.[3] It also allows programs more flexibility to efficiently handle new situations with no recompiling. 逾编程是一种计算机编程技术计算机程序能够将其他程序视为自己的数据。这意味着程序可以设计为在运行时读取、生成、分析或转换其他程序(译注这里指其它程序代码也就是让程序本身也可以生成代码)甚至修改自身。[1][2] 在某些情况下这允许程序员最大限度地减少表达解决方案的代码行数从而缩短开发时间。[3] 它还允许程序更灵活地高效处理新情况而无需重新编译。(译注也就是说这种编程技术所写出的代码可以做程序员做的事情这是越超了原来的编程只实现程序本身的功能这正是meta-programming 的本来含义。) 2.2  说明 传统程序主要是操纵数据结构并产生输出的代码。例如sqrt() 函数以整数(即数据结构)作为输入对其进行操纵然后输出其平方根。当然数据结构可能比简单的整数或双精度数复杂得多但这是程序(program)的一般概念。 在另一方面编译器是一个程序它将源代码(同样是数据结构)作为输入将其转换为一堆可以更好地理解的数据结构并产生可能是二进制代码、字节码或中间语言等格式/结构的输出。解释器大致就是每次运行代码时执行此过程的编译器。 现在如果我们可以编写操纵数据结构的代码并编写将人类编写的代码视为数据结构的编译器为什么我们不能写出编写或操纵其他代码的代码呢事实证明我们可以而且这已经持续了很长一段时间 Lisp 于 1958 年推出是首批具备此类功能的语言之一。原因是 Lisp 使用 S 表达式作为语法和数据结构。因此Lisp 代码可以作为输入数据结构输入到 Lisp 程序中并由它们进行操作这在某种程度上是 Lisp 首创的。其他通用语言使用的语法比 S 表达式更易读。在现代语言中逾编程以不同的方式表示。C 中的模板是编译时逾编程的一种形式。其他语言使用 eval、goto、自动编程和其他技术在运行时提供逾编程功能。一类特别鼓励逾编程的语言是动态语言。这类语言通常是动态类型的通常非常灵活。Ruby 和 Python 就是这类语言的很好例子。 现在所有这些都很好但为什么首先要使用动态编程呢你可能会想编写代码的代码谁需要它我为什么不自己写代码呢这些都是合理的问题所以让我们举一个真实的例子来说明它的用法。在 Ruby on Rails 中(注一个 Web 应用程序框架包含根据模型-视图-控制器 (MVC) 模式创建数据库支持的 Web 应用程序所需的一切)数据库表(例如“学生”表)由类表示。所以现在您有一个刚刚从该类实例化的“学生”对象并且想要查找 GPA 低于 3.0 的所有大三学生您会怎么做您可以随时编写 Sql 查询但说真的您该怎么做如果您使用 Rails那么您只需调用 student.find_all_by_year_and_gpa() 并向其传递您的条件但是等等谁定义了该方法Rails 团队不能只定义世界上所有可能的方法吗毕竟其他人可能会做 student.find_all_by_name_and_year()甚至只是反过来如 student.find_all_by_gpa_and_year()员工表怎么样或者产品表这太疯狂了您可以看到即使 Rails 团队知道我们的数据库列的名称这里也有无限的可能性和排列那么这是怎么发生的呢好吧Rails 使用 Ruby 的逾编程功能来提供如此出色的功能。事实证明Ruby 有一个名为“method_missing”的方法它可以拦截对对象上未定义方法的调用并对其进行处理换句话说您刚刚调用的方法在您调用它之前并不存在Rails 拦截了对不存在的 find_by_year_and_gpa() 方法的调用并解析了它的名称。它以“find_by_”开头后跟“xxx_and_yyy”因此它知道您正在尝试使用其两个列在数据库表中查找某些内容。因此它只需获取“xxx”和“yyy”并检查是否可以找到具有相同名称的数据库列如果可以它会调用 define_method()该方法会为您编写一个构造该查询的方法在 Student 类上定义它最后返回结果现在每次您在该学生对象上调用 find_all_by_year_and_gpa() 时都会调用新定义的方法而不是每次都经历整个过程当然您可以只在 method_missing?() 中处理请求但每次都经历这个过程效率低下。如果我们有一个循环每次迭代都调用此方法会怎么样这只是您可以使用逾编程做什么的一个例子它很有意义在许多情况下非常需要您只需要花时间了解它是什么以及如何以及何时使用它。 3.  翻译成“元编程”应该是一种错误 在汉语中“元”的词义有很多最常见的词义有 (1)  头、首、始、大凶。首。旦。年。勋。帅。状科举考试第一名。 (2)  基本单。件。气精气根本。素。音。 (3)  同“圆”。 (4)  未知数一二次方程。 (5)  中国朝代名代。曲。 (6)  姓。 (7)  古同“玄”清代避康熙皇帝玄烨名讳以“元”代“玄”。 但是以上词义没有一个与“meta-programming”所要表达的思想贴合。为什么翻译成“元编程”可能是因为在最初网页设计中有一种元素放在文件头部以方便搜索引擎进行搜索而这种元素称“meta”元素这时候翻译成“元”是合理的。但后来但凡在编程界出现“meta-”就统统译为“元”则是错误的。 综合以上说明我认为这个“meta-”在“meta-programming”中译为“超越”更为合理如果用一个字表达表就使用“逾”。即译为“逾编程”。
http://www.w-s-a.com/news/622804/

相关文章:

  • 亦庄网站建设价格广州网站推广服务
  • 十大免费ppt网站下载重庆在线高校平台登录
  • 做环保网站案例百度seo教程
  • 体育用品网站模板网站建设话术
  • 潍坊网站建设服务商做网站多久能盈利
  • 嘉定区做网站房产信息查询官网
  • 网站直播间 是怎么做的唐山论坛建站模板
  • 深圳洲聚网站建设wordpress 泛解析
  • 五金东莞网站建设技术支持wordpress 添加模板
  • 网站申请专利春节网页设计素材
  • 进网站备案md风格的wordpress主题
  • 如何建站网站十大免费建站app
  • 工作号做文案素材的网站晋城网站设计人
  • 建设部网站官网 施工许可怎样建网站 需要
  • 什么网站都能打开的浏览器同城小程序怎么推广
  • 在电脑上怎么做网站网址seo分析
  • 石家庄做网站网络公司电子商务营销推广
  • 网站开发 前端专做婚礼logo的网站
  • 同创企业网站建设拖拽建设网站源码
  • wordpress调用网站标题网站页面排版
  • 哈尔滨营销网站建设电子商城网站开发要多少钱
  • 免费织梦导航网站模板下载地址自己建站网站
  • 获取网站访客qq号码代码做抽奖网站违法吗
  • 湖南大型网站建设公司排名偷网站源码直接建站
  • 网站建设周期规划北京网站设计必看刻
  • 如何做自己的在线作品网站深圳网站设计公司的
  • 网站开发外包公司wordpress最简单模板
  • 湖南省建设人力资源网站wordpress主机pfthost
  • 淮安软件园哪家做网站各网站特点
  • 网站长尾关键词排名软件重庆荣昌网站建设