系统编程语言和应用程序编程语言之间的区别

2022-09-04 06:17:16

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


答案 1

在我看来,应该考虑几个因素。

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

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

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

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


答案 2

与IT中的许多事情一样,界限是模糊的。例如,C最初是一种系统编程语言(并用于实现Unix),但过去和现在也用于应用程序开发。

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

从上面的例子中脱颖而出的语言特征是系统编程语言的低级功能,如C / C++(例如指针,位操作运算符等)。当然,有一个古老的笑话,C是一种“海”级语言(介于汇编级和“高”级之间)。

警告:我是从操作系统开发人员/操作系统工具开发人员的角度来研究系统编程的。

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

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