Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Programming languages 编程语言能做操作系统之外的事情吗?_Programming Languages - Fatal编程技术网

Programming languages 编程语言能做操作系统之外的事情吗?

Programming languages 编程语言能做操作系统之外的事情吗?,programming-languages,Programming Languages,我试图对程序和编程语言有一个更全面、更全面、更高层次的理解 我想了解它们实际上是如何运作的。我知道最底层的机器代码是0和1s。然后你就有了装配。然后你有了另一种高级语言,其中每一条指令/函数/方法/调用/例程,不管你想调用什么,都映射到汇编语言中的某条指令或一组指令,对吗?高级语言不能提供或做任何超出低级语言程序集提供的内容的事情。正确吗 类似地,由于所有代码都在操作系统上运行,因此该代码只能执行操作系统提供的操作。代码不可能执行操作系统实际提供的正确操作之外的任何操作。计算机有一个指令集,即机

我试图对程序和编程语言有一个更全面、更全面、更高层次的理解

我想了解它们实际上是如何运作的。我知道最底层的机器代码是0和1s。然后你就有了装配。然后你有了另一种高级语言,其中每一条指令/函数/方法/调用/例程,不管你想调用什么,都映射到汇编语言中的某条指令或一组指令,对吗?高级语言不能提供或做任何超出低级语言程序集提供的内容的事情。正确吗


类似地,由于所有代码都在操作系统上运行,因此该代码只能执行操作系统提供的操作。代码不可能执行操作系统实际提供的正确操作之外的任何操作。

计算机有一个指令集,即机器代码,它定义了可以在计算机上执行的操作。汇编代码本质上是一种更方便的表示形式,因此汇编代码可以做机器可以做的任何事情。高级编程语言必须在机器上运行,因此它不能做机器不能做的任何事情,尽管它可能能够更方便地表达它(例如,
print“foo”
,而不是几十条机器代码指令)。该编程语言的编译器是直接生成机器代码,还是生成汇编代码,还是生成可能需要进一步处理的任何其他形式,这是实现选择的问题

这就引出了一个问题:一个程序(不管它是用什么编写的)是否有可能做一些操作系统没有明确规定的事情。我觉得这是一种奇怪的表达方式,因为编写程序的目的是为您提供一些以前没有的功能,因此在某种意义上,您只为操作系统没有明确提供的功能编写程序。问题在于定义操作系统“提供”的内容。如果它是一个通用操作系统,那么它的设计者可能打算“提供”为您编写广泛程序的能力。操作系统可能会选择提供一些方便的功能(例如,创建文件的能力),但如果它没有提供这样的功能,您可能可以自己做,如果有适当的动机(对于文件创建示例,还有执行磁盘I/O的能力,可能还需要您编写磁盘驱动程序)

我试图获得一个更全面、更全面、更高层次的解决方案 了解程序和编程语言

我想了解它们实际上是如何运作的

我建议通过了解现代硬件来获得良好的性能和能效,例如: 使用
子字并行性
矩阵相乘
提高4倍。 展开循环以演示指令级并行性的价值,从而使性能加倍。 通过使用优化缓存使性能再次翻倍
阻塞
。 最后,通过使用
线程级并行
,16个处理器的速度提高了14。 这四种优化总共只为您在中找到的矩阵乘法示例添加了24行C代码

计算机组织与设计:软硬件接口(第五版)

或类似的书

为了说明这一点,即使这是一个很好的开端,也值得深入挖掘,而不仅仅是“学习python”。因此,理解低级编程在许多方面确实会影响高级编程,根据您的问题,这就是您所追求的

实际上不仅仅是汇编语言,还有硬件描述语言作为VHDL在本主题f.e.:

我的操作系统没有专门为拼字游戏提供支持,但我能够使用编程语言编写代码来实现拼字游戏。显然,可以在操作系统提供的范围之外做一些事情。这有点开玩笑,但我认为你的问题需要具体说明“操作系统提供”和“外部”的含义。在我看来,操作系统提供的是我编写和运行任何我想写的程序的能力,尽管在一定范围内。谢谢你提供的信息。我想你明白我的意思。请帮我完善我的问题。我正试图理解高级语言和操作系统之间的关系,正如你所描述的。我真的不明白你所说的限制。网络就是一个例子。操作系统为您提供了使用其IP堆栈的功能。如果没有,这将如何使用?操作系统不需要提供一些东西吗?也许不是。也许表达我问题的另一种方式是,高级语言的功能与操作系统提供的功能之间的关系是什么?关于网络问题,我使用过不提供任何网络的操作系统。然后,我为这样的操作系统编写了网络软件(我的雇主后来卖掉了它;这就是重点)。操作系统所需要的只是添加设备驱动程序的能力。因此,在操作系统提供的功能和您可以做的功能之间存在一个模糊的界限;在这种情况下,你能做什么主要取决于你愿意付出多少努力。(现在没有一个理智的应用程序程序员会准备提供自己的TCP/IP实现)。您对编程语言的选择可能会限制您可以编写的程序的种类,但这是因为编程语言本身设计时考虑了特定种类的编程。如果操作系统不提供网络,你用什么写代码?你是用汇编语言编写的,它为网络提供了便利,因此你只是用更高级的语言来表达它,使它更方便?