python - 帮我对编程语言进行一些分类

标签 python c ruby programming-languages

<分区>

所以我几天前在这里问了关于 C# 及其原理的问题。现在,如果可以的话,我还有一些关于某些语言的一般性问题,因为对于像我这样的新手来说,这似乎有点令人困惑。确切地说,我想问更多关于语言功能的问题,而不是语法等等。

老实说,正是这些特殊的功能让我很困扰,让我很困惑。例如,C 有它的 printf(),Pascal 有 writeln() 等等。我知道基本上这些函数在汇编程序中的输出是相似的,每种语言或多或少都有其特殊的功能。对于控制台输出,文件操作等。但是所有这些函数实际上都是其操作系统 API 的一部分,那么为什么在 C 中区分 C 标准库函数和(在 Windows 上)WinAPI 函数,即使 printf() 有要使用某些 Windows 功能,请调用它的某些功能以在控制台窗口上实际显示所需的文本,因为实际的“显示”是由操作系统完成的。语言功能和系统 API 之间的界线在哪里?

现在我不太了解的语言 - Python、Ruby 和类似语言。更具体地说,我知道它们在编译成字节码方面类似于 java 和 C#。但是,我不明白它在构建 GUI 应用程序方面的能力。我看到了使用 Ruby 在 Linux 和 Windows 上编写 GUI 应用程序的教程。但这不只是某种升级吗?我的意思是编写其他教程 看起来这些语言最初是为小脚本设计的,而不是构建大型应用程序。

我希望你明白我为什么感到困惑。如果你这样做,请帮我解决一下,我没有人问。

最佳答案

在底部,您有操作系统内核本身——在特殊 CPU 模式下运行的代码,允许直接访问其他 protected 资源。除非您是操作系统开发人员,否则您永远不必处理这个问题。

然后是一条禁止交叉线,将“内核空间”与“用户空间”分开。作为“普通”开发人员,您所做的一切都是在用户空间中完成的。

操作系统内核将有限数量的非常基本的功能导出到用户空间,称为“系统调用”。例如打开一个文件,读/写一些字节,关闭文件。

因为这些系统调用通常需要一些开发人员不想被打扰的汇编代码,所以它们被“包装”在(通常)C 代码函数中:open()、read()、write()、close() .

现在有组 API 可供开发人员使用:操作系统 API 和标准语言 API。

标准语言 API 提供可在支持该语言的任何平台上使用的函数:fopen()、fputc()、fgetc()、fclose()。它还将提供更高级的功能,使生活更轻松:例如 fprintf()。

操作系统 API 提供了自己的一组函数。这些不能移植到不同的操作系统,但使用起来可能更直观,或者更强大,或者仅仅是不同。打开文件 ()、读取文件 ()、写入文件 ()、关闭文件 ()。同样,更高级别的函数可能可用,即 PrintLn()。

这两组函数可能部分相互依赖,或者直接进行系统调用,但这不会让您太在意。但是,您应该事先决定要为您的项目使用哪一组函数,因为混合这两组函数——虽然这本身不是错误——会打开一个整体新的蠕虫 jar 头(即潜在错误)。

关于python - 帮我对编程语言进行一些分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3021652/

相关文章:

python - 新的 django 应用程序中没有 bin 和 lib

c - 在函数中使用 printf 返回 void

c++ - 某些宏语句在 C++ 中可能会产生意想不到的结果?

java - Java 中的 C 格式说明符 "%n"

ruby-on-rails - Ruby:使用私钥/公钥进行文件加密/解密

python - 如何使用 BeautifulSoup (python) 跳过 <ul> 的第一个元素?

python - 在 Python 中,我应该在 if block 中返回后使用 else 吗?

python - selenium.common.exceptions.WebDriverException : Message: unknown error: Chrome failed to start: crashed with ChromeDriver and Selenium in Python

ruby-on-rails - 测试数据生成器 CSV - 类似于 Mockaroo

ruby - 从 XML 中获取属性值