Sri*_*thy 11 c# python java perl programming-languages
a systems programming language和Application programming language?之间有什么区别?
650*_*502 16
我的意见中应该考虑一些因素
在系统编程语言中,您必须能够达到低级别的东西,接近真实的硬件世界.在应用程序语言中,有一种"虚拟世界"(希望更好,更容易与之交互),它是用语言设计的,你只需要能够应对这种情况.
在系统编程语言中,在性能方面不应该有任何让步.一个人必须能够编写能够从硬件中挤出所有果汁的代码.这不是应用程序编程语言中最大的问题,实际编写程序所需的时间起着更大的作用.
由于2,系统编程语言可以自由地假设程序员没有错误,因此不存在"运行时错误"保护.例如,从数组中索引将意味着世界末日,除非硬件免费提供这些检查(但在这种情况下,您可能会选择更便宜或更快的硬件).我们的想法是,如果你认为代码是正确的,那么即使支付一小笔费用来检查不可能的代码也没有意义.系统编程语言也不应该试图禁止程序员做他/她想做的事情......假设他/她知道这是正确的事情.在应用程序编程语言中,它' 被认为是很好的帮助程序员检查代码,并试图强制代码使用某些哲学模式.在应用程序编程语言中,可以牺牲诸如执行速度,打字时间和代码大小之类的东西来帮助程序员避免自己拍摄.
由于3,系统编程语言将难以通过实验学习.从某种意义上说,它们是一种强大但危险的工具,人们应该仔细思考每一个语句,出于同样的原因,它们是调试更难的语言.在应用程序编程语言中,try-see-see方法可能是合理的(如果虚拟世界抽象没有泄漏太多),并且让错误在以后删除它们被认为是可行的选择.
与IT中的许多事情一样,这条线很模糊.例如,C作为一种系统编程语言开始其生命(并用于实现Unix),但它也曾用于应用程序开发.
话虽如此,显然有些语言比其他语言更适合系统编程(例如,C/C++比COBOL/FORTRAN更适合系统编程).同样,有些语言更适合应用程序开发而不是系统编程,例如.VB.NET.
从上面的示例中脱颖而出的语言特性是系统编程语言(如C/C++)的低级特性(例如指针,位操作运算符等).当然有一个老笑话,C是一种"海"级语言(位于汇编级别和"高级"级别之间).
警告:我从OS开发人员/操作系统工具开发人员的角度来看系统编程.
我认为可以公平地说,尽管开发使用Java的操作系统的项目(尽管我认为主要是本机编译,而不是字节代码和JIT /解释),但系统编程语言针对其目标平台的本机机器代码.因此,主要针对托管代码/解释代码的语言不太可能用于系统编程.
无论如何,这肯定足以激起支持和反对的一些评论:)
这些不是确切的概念,但实质上,系统编程语言适合编写操作系统(因此它们具有低级概念,如指针,与汇编程序集成,数据类型对应于内存和寄存器组织),而应用程序编程语言更适合编写应用程序,因此它们通常使用更高级别的概念来表示计算(例如OOP,闭包,内置的复杂数据类型等).
| 归档时间: |
|
| 查看次数: |
12341 次 |
| 最近记录: |