系统编程语言与应用程序编程语言的区别

Sri*_*thy 11 c# python java perl programming-languages

a systems programming languageApplication programming language?之间有什么区别?

650*_*502 16

我的意见中应该考虑一些因素

  1. 在系统编程语言中,您必须能够达到低级别的东西,接近真实的硬件世界.在应用程序语言中,有一种"虚拟世界"(希望更好,更容易与之交互),它是用语言设计的,你只需要能够应对这种情况.

  2. 在系统编程语言中,在性能方面不应该有任何让步.一个人必须能够编写能够从硬件中挤出所有果汁的代码.这不是应用程序编程语言中最大的问题,实际编写程序所需的时间起着更大的作用.

  3. 由于2,系统编程语言可以自由地假设程序员没有错误,因此不存在"运行时错误"保护.例如,从数组中索引将意味着世界末日,除非硬件免费提供这些检查(但在这种情况下,您可能会选择更便宜或更快的硬件).我们的想法是,如果你认为代码是正确的,那么即使支付一小笔费用来检查不可能的代码也没有意义.系统编程语言也不应该试图禁止程序员做他/她想做的事情......假设他/她知道这是正确的事情.在应用程序编程语言中,它' 被认为是很好的帮助程序员检查代码,并试图强制代码使用某些哲学模式.在应用程序编程语言中,可以牺牲诸如执行速度,打字时间和代码大小之类的东西来帮助程序员避免自己拍摄.

  4. 由于3,系统编程语言将难以通过实验学习.从某种意义上说,它们是一种强大但危险的工具,人们应该仔细思考每一个语句,出于同样的原因,它们是调试更难的语言.在应用程序编程语言中,try-see-see方法可能是合理的(如果虚拟世界抽象没有泄漏太多),并且让错误在以后删除它们被认为是可行的选择.


Pet*_*ald 9

与IT中的许多事情一样,这条线很模糊.例如,C作为一种系统编程语言开始其生命(并用于实现Unix),但它也曾用于应用程序开发.

话虽如此,显然有些语言比其他语言更适合系统编程(例如,C/C++比COBOL/FORTRAN更适合系统编程).同样,有些语言更适合应用程序开发而不是系统编程,例如.VB.NET.

从上面的示例中脱颖而出的语言特性是系统编程语言(如C/C++)的低级特性(例如指针,位操作运算符等).当然有一个老笑话,C是一种"海"级语言(位于汇编级别和"高级"级别之间).

警告:我从OS开发人员/操作系统工具开发人员的角度来看系统编程.

我认为可以公平地说,尽管开发使用Java的操作系统的项目(尽管我认为主要是本机编译,而不是字节代码和JIT /解释),但系统编程语言针对其目标平台的本机机器代码.因此,主要针对托管代码/解释代码的语言不太可能用于系统编程.

无论如何,这肯定足以激起支持和反对的一些评论:)


J S*_*J S 5

这些不是确切的概念,但实质上,系统编程语言适合编写操作系统(因此它们具有低级概念,如指针,与汇编程序集成,数据类型对应于内存和寄存器组织),而应用程序编程语言更适合编写应用程序,因此它们通常使用更高级别的概念来表示计算(例如OOP,闭包,内置的复杂数据类型等).