繁体   English   中英

语言和框架之间有什么区别?

[英]What is the difference between a language and a framework?

有人能给我一个清晰,简洁的定义编程语言和框架之间的区别吗? 我在网上搜索过,无法找到合适的定义。

对于额外的功劳,语言和框架是否可能变得如此密不可分,以至于没有区别,或者它们之间是否存在这样的明确界限,这是不可能的?

语言是实现者需要支持的语法,语法,语义(也许是核心库)。 框架是一组紧密结合的库代码,它们共同简化了任何给定语言的编程。


应用程序框架是任何应用程序代码的组织结构,包括文件/文件夹,类/函数等中的约定选择。

应用程序框架产品是帮助生成应用程序框架的任何工具。

应用程序设计模式是在应用程序级别组织代码的任何概念方法。

软件语言是一种基于语言的工具,可用于构建应用程序,实用程序,库,框架等。

是对语言的本机编译功能的任何功能扩展。

标准库是与语言产品本身一起打包的库。

外部库是语言产品本身之外的库,可以远程调用,也可以在本地安装。

代码生成器是基于开发人员输入动态生成永久运行时代码的任何工具。


关于语言和框架之间的界限,我认为你可以将DSL(领域特定语言)统计为语言和框架的构造(因为它是构建在其上的原始语言中的框架)。

Lisp是我现在能想到的唯一可能模糊这种区别的语言:

“LISP这个名字来源于”LISt Processing“。链接列表是Lisp语言的主要数据结构之一,Lisp源代码本身由列表组成。因此,Lisp程序可以将源代码作为数据结构进行操作,上升到宏系统,允许程序员创建新的语法甚至是嵌入在Lisp中的新的特定于域的语言。“

http://en.wikipedia.org/wiki/Lisp_(programming_language)

我希望我能用一个例子来解释。

Dot net是一个由大型库组成的框架,支持许多编程语言.C#是一种编程语言,通过它您可以向主机上的计算机发出指令。现在如果您的源代码是C#,您可以使用Dot net框架库和用其他语言编写的源代码..

在我看来,编程语言看起来像一堆东西(语法,语法,语义等),人们已经将它们组合成一个更方便,更有用,更易于使用,更有趣的框架,我喜欢在开始制作程序之前有一个框架。

我知道一些编程语言,如C,PHP,ASP,Python,Java,以及一些框架,如Yii,Zend,Pygame,Struts。 我所看到的是,可以有许多从编程语言构建的框架,但框架仅基于编程语言构建。

编程语言是程序员和计算机之间指定的标准化通信方法(在现代语言中,技术上是程序员和编译器之间,它将您的代码“解释”为计算机可以使用的简单指令)。 它是一个纯抽象,指定了它的结构,语法和语义; 语言的实现通常被认为是程序员开发的环境的一部分,并且包含编译器和任何虚拟机实现。

框架是一组标准化的预编写代码库,旨在供开发人员使用和重用,并且再次与环境相关联。 环境是语言,框架,虚拟机或运行时(其中托管或解释的代码从与机器无关的形式转换为本机代码的抽象层)和机器(执行本机指令的硬件层)的交集。 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM