gpt4 book ai didi

programming-languages - 通用编程与元编程

转载 作者:行者123 更新时间:2023-12-02 16:15:46 24 4
gpt4 key购买 nike

具体有什么区别?似乎这些术语可以互换使用,但在阅读 Objective-c 的维基百科条目时,我发现:

In addition to C’s style of procedural programming, C++ directly supports certain forms of object-oriented programming, generic programming, and metaprogramming.

引用 C++。那么显然它们是不同的?

最佳答案

  • 编程:编写一个程序来创建、转换、过滤、聚合和以其他方式操作数据。
  • 元编程:编写一个程序来创建、转换、过滤、聚合以及以其他方式操作程序
  • 通用编程:编写一个程序来创建、转换、过滤、聚合和以其他方式操作数据,但只对数据结构做出最低限度的假设,从而最大限度地在广泛的范围内重用数据类型。

正如其他几个答案中已经提到的,C++ 中的区别可能会令人困惑,因为通用编程和(静态/编译时)元编程都是使用模板完成的。更让您困惑的是,C++ 中的通用编程实际上使用元编程来提高效率,即模板特化从通用程序生成专用(快速)程序。

还要注意的是,正如每个 Lisp 程序员都知道的那样,代码和数据是同一件事,所以实际上不存在“元编程”这样的东西,这只是编程。同样,这在 C++ 中有点难以看出,因为您实际上使用两种完全不同的编程语言进行编程(C++,C 家族中的一种命令式、过程式、面向对象的语言)和元编程(模板,一种纯粹的函数式“偶然”) “这种语言介于纯 lambda 演算和 Haskell 之间,语法极其丑陋,因为它实际上从未打算成为一种编程语言。)

许多其他语言使用相同的语言进行编程和元编程(例如 Lisp、Template Haskell、Converge、Smalltalk、Newspeak、Ruby、Ioke、Seph)。

关于programming-languages - 通用编程与元编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3937586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com