系统编程语言和应用程序编程语言有什么区别?
系统编程语言和应用程序编程语言有什么区别?
在系统编程语言中,您必须能够接近真实的硬件世界,涉及到底层的问题。然而,在应用程序语言中,存在一种“虚拟世界”(希望更好、更易于交互),该世界是使用语言设计的,您只需要能够应对它。
在系统编程语言中,性能方面不应有任何妥协。程序员必须能够编写代码,从硬件中挤出所有的性能优势。但在应用程序语言中,实际编写程序所需的时间才是更重要的考虑因素。
由于第2点,系统编程语言可以自由地假设程序员不会犯错误,因此没有“运行时错误”保护措施。例如,数组的索引超出范围将意味着世界末日,除非硬件免费提供这些检查(但这种情况下,您可能可以选择成本更低或速度更快的硬件)。这样做的想法是,如果假定代码正确,那么即使为了检查不可能的事情而付出一点代价也毫无意义。另外,在系统编程语言中,不应妨碍程序员故意做某些他/她认为正确的事情。而在应用程序语言中,帮助程序员检查代码以及尝试强制使用某些哲学模式被认为是好的编程实践。为了帮助程序员避免犯错,应用程序语言可以牺牲执行速度、输入时间和代码大小等方面。
由于第3点,系统编程语言将更难通过试验学习。从某种意义上说,它们是强大但危险的工具,人们应该小心地思考每一个语句,因此调试也更加困难。相反,在应用程序语言中,可以采用尝试和查看的方法(如果虚拟世界抽象没有泄漏太多),让错误进入并稍后进行修复是可行的选择。
这些不是确切的概念,但本质上,系统编程语言适合编写操作系统(因此它们具有指针、与汇编程序集成、对应于内存和寄存器组织的数据类型等低级概念),而应用程序编程语言更适合编写应用程序,因此它们通常使用更高级别的概念来表示计算(例如OOP、闭包、内置复杂数据类型等)。