”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 编程语言解释

编程语言解释

发布于2024-11-06
浏览:512

Programming Languages Explained

注意:缩略图是使用
生成的 ComfyUI 帮助下的 Flux Schnell 模型;
本文是在 NI - 自然智能
的帮助下撰写的 ? 没有时间阅读? - 观看我们创建的视频:
Programming Languages Explained

集会 ?

最初所有程序都是用二进制编写的 - 所谓的汇编
编程语言。你从字面上指示CPU在
内做什么 算术逻辑单元。虽然汇编作为低级编程语言提供了
对 ALU 的非常精细的控制需要程序员真正了解 CPU
架构和二进制逻辑 - 这是非常困难和昂贵的。
汇编提供低级优化,有利于执行性能。
正在开发和积极维护的此类程序的示例
是排序算法、哈希函数、循环等
因此,为了降低复杂性并提高效率,聪明人发明了
高级编程语言。

? Linux X86 的程序集 hello world app 示例:

section .data
    hello db 'Hello World!', 0x0A     ; The string to print, with a newline

section .text
    global _start                     ; Entry point for the program

_start:
    ; Write the string to stdout
    mov eax, 4                        ; syscall number for sys_write
    mov ebx, 1                        ; file descriptor 1 is stdout
    mov ecx, hello                    ; pointer to the string
    mov edx, 13                       ; length of the string
    int 0x80                          ; call kernel

    ; Exit the program
    mov eax, 1                        ; syscall number for sys_exit
    xor ebx, ebx                      ; exit code 0
    int 0x80                          ; call kernel

高级编程语言 ?

高级编程语言的目的是简化
的程序 使用人类可读的文本编写业务逻辑。高级编程
语言分为编译型和解释型。

编译型编程语言?️

编译型编程语言将高级人类可读代码翻译成
编译过程中的机器代码。
进行实际编译的程序称为编译器。
值得一提的是,每个程序都需要编译
特定的计算机体系结构。
为 X86 编译的程序无法在 ARM 处理器上运行,反之亦然。
因此需要针对特定​​架构进行编译。
编译是一个不可逆的过程。
您无法可靠地将汇编代码转换为高级源代码。

在大多数情况下,编译的程序都会执行性能方面的事情
快点 ?比解释程序。

大多数编译语言都是静态类型的。
解释如下。

最流行的编译语言是 C、C 、Rust、Objective C、C#。

Hello world关于用C语言编写的:

#include 
int main() {
   printf("Hello World!");
   return 0;
}

静态和动态链接库?️

应用程序可以执行某些典型操作,例如显示图像,
解压缩档案和许多其他内容。虽然可以写出所有这样的
从头开始运行是不切实际的。
为此,使用了库。
库通过拆分
来帮助降低开发过程的复杂性 应用程序到模块中。新功能和错误修复可以在
内执行 模块的范围而不是整个应用程序。
将库集成到主应用程序的过程称为
链接。链接可以动态完成 - 这意味着所有库都是

期间单独编译并连接到主应用程序 应用程序的运行时或静态 - 意味着所有机器代码
库已集成到主应用程序二进制文件中。
动态库通常具有 Windows 扩展名 .dll 和 Unix 扩展名 .so。

解释型编程语言 ?

解释性编程语言翻译高级人类可读代码
在程序执行期间转换为机器代码。执行此操作的程序
被称为解释器。由于解释器也是一个程序
已经针对它可以翻译的 CPU 的特定架构进行了编译
动态将高级代码转换为机器语言。

大多数情况下解释程序的性能都比较慢?
比编译的。

最流行的解释语言是 Python、JavaScript、PHP、Ruby。

Hello world关于用Python编程语言编写的:

print("Hello World!")

编程语言的典型化?

编程语言可以分为静态类型和动态类型。

静态类型编程语言中的所有变量和数据结构
在程序编译或执行之前预先定义。
例如,这意味着如果开发人员将变量 A 定义为 string
他无法在代码中将其值从字符串更改为数字。
这可以在提前(AOT)编译和打印期间验证
逻辑错误。这种简单的技术有助于减少错误数量
在执行期间,这会导致更稳定的程序。

在动态类型编程语言中,变量可以重新赋值
从一种类型到另一种类型。例如变量 A 首先可以包含一个数字
后面可以包含一个字符串。该方法简化了开发过程。

数据结构

变量?

变量可以是整数浮点数字符串.
它们被认为是最简单的数据结构。
要深入挖掘,变量是使用 RAM 中的指定地址存储的。
地址是一个二进制数(11111111111111101011111101111111111100001101100)
RAM 中存储单元的数量通常表示为十六进制数
(0x7fff5fbff86c) 以便于阅读。

常量是特殊变量,其值在赋值后为
不应被正在运行的程序更改

其他数据结构?

除了变量之外,还有其他数据结构,例如数组,
关联数组、链表、队列、堆栈等等。
这些结构的目的是更有效地存储数据
这样处理数据会更容易。

编程语言中的函数 ?

简化业务逻辑编程的方法之一是使用
所谓的函数。就像数学中的 f(x) 是一个产生
的函数一样 某个值取决于编程中该函数的属性
函数可以返回值或做一些事情。函数可以接受输入
参数,例如数字、字符串或任何其他数据结构,并返回
值或数据结构,或者它们可以在没有任何参数的情况下工作,
一切都取决于函数本身的业务逻辑。

结论?

实际上,编程语言并不像大家想象的那么复杂。
如果您刚刚开始学习编程 - 从简单的解释
开始 像Python这样的语言。了解基础知识后 - 所有其他语言
就像阅读语法一样简单。

来源:https://blog.wiregate.io/posts/programming-languages-explained

版本声明 本文转载于:https://dev.to/mikhail_shevtsov/programming-languages-explained-4mgc?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何在Python中散列大文件而不消耗内存?
    如何在Python中散列大文件而不消耗内存?
    在Python中计算大文件的MD5哈希值Python的hashlib模块为计算加密哈希值提供了一个方便的接口。然而,对于大小超过系统内存的特别大的文件,直接使用 hashlib 可能会出现问题。解决方案:渐进式哈希为了解决这个问题,我们采用渐进式哈希通过以可管理的块读取文件。这种方法可确保对整个文件...
    编程 发布于2024-11-06
  • 使用 Maven 以及 PostgreSQL 数据库对 Java Spring Boot 应用程序进行 Docker 化
    使用 Maven 以及 PostgreSQL 数据库对 Java Spring Boot 应用程序进行 Docker 化
    Docker化 Spring Boot 应用程序涉及创建包含您的应用程序及其依赖项的 Docker 映像。这允许您以一种可以轻松共享并在任何安装了 Docker 的计算机上运行的方式打包应用程序。以下是对基于 Maven 的 Spring Boot 应用程序进行 Docker 化并在 Docker ...
    编程 发布于2024-11-06
  • 如何修复由 Google JAR 文件引起的 Android Studio 中的“GC Overhead Limit Exceeded”错误?
    如何修复由 Google JAR 文件引起的 Android Studio 中的“GC Overhead Limit Exceeded”错误?
    Google JAR 文件导致 Android Studio 中出现 GC 开销限制超出错误Android Studio 用户在以下情况下可能会遇到“GC 开销限制超出”错误使用 Google JAR 文件。此问题通常是由于为 dedex 进程分配的内存不足而引起的。要解决此问题,请考虑以下步骤:1...
    编程 发布于2024-11-06
  • 如何用 SQLSRV 替换 PHP 5.3 中已弃用的 MSSQL 扩展?
    如何用 SQLSRV 替换 PHP 5.3 中已弃用的 MSSQL 扩展?
    PHP 5.3 中 MSSQL 扩展的替代方案随着 PHP 5.3 中 MSSQL 扩展的弃用,寻求替代解决方案变得至关重要。本文深入研究 SQLSRV 扩展作为连接 Microsoft SQL 数据库的可行选项。根据 PHP 手册,PHP 5.3 及更高版本不再支持 MSSQL 扩展。作为替代,M...
    编程 发布于2024-11-06
  • 何时使用 AtomicBoolean:防止多线程应用程序中的数据不一致?
    何时使用 AtomicBoolean:防止多线程应用程序中的数据不一致?
    AtomicBoolean:Volatile Boolean 的更强大的替代品在多线程编程中,确保对共享数据的正确和一致的访问至关重要。一种常见的方法是使用 volatile 关键字将字段标记为共享,确保对变量的更改对其他线程立即可见。但是, volatile 关键字存在一些限制,可能会导致问题,特...
    编程 发布于2024-11-06
  • Jsoup 如何使 Java 中的网页抓取变得简单高效?
    Jsoup 如何使 Java 中的网页抓取变得简单高效?
    Java 中网页抓取的 HTML 解析在软件开发领域,有必要从网站中提取有价值的信息以用于各种目的。这种从在线来源提取数据的过程通常称为网络抓取。 Java 程序员可以使用一种多功能工具来完成此任务:HTML 解析器。强烈推荐的 Java HTML 解析器是 Jsoup。它的出色之处在于其用户友好的...
    编程 发布于2024-11-06
  • Jetmaker - 用于用 Python 构建分布式系统的开源框架
    Jetmaker - 用于用 Python 构建分布式系统的开源框架
    项目:Jetmaker 它是 Python 开发人员将多个分布式节点连接到一个系统中的框架,因此分布式应用程序可以访问彼此的数据和服务。它还提供了同步所有节点的工具,就像在多线程和多处理中所做的那样 Github链接:https://github.com/gavinwei121/Jetmaker 文...
    编程 发布于2024-11-06
  • 驯服电子邮件野兽:我的收件箱管理人工智能之旅
    驯服电子邮件野兽:我的收件箱管理人工智能之旅
    是否曾经感觉您的收件箱是一个数字九头蛇,为您回复的每个人发送两封新电子邮件? ??好吧,科技爱好者们,我决定用秘密武器来对付这个怪物:人工智能! ??️ 尤里卡时刻 想象一下:现在是凌晨 3 点,我周围都是空咖啡杯☕☕☕,盯着一个数量可与国会图书馆相媲美的收件箱。就在那时,我突然想到...
    编程 发布于2024-11-06
  • 为什么 Go 是智能合约开发的新竞争者
    为什么 Go 是智能合约开发的新竞争者
    区块链生态系统迅速发展,引入了创新的解决方案和平台,扩展了分布式账本技术的潜力。这项创新的核心是智能合约——自动执行的程序,无需中介即可自动执行协议。传统上,Solidity 一直是编写智能合约的首选语言,尤其是以太坊区块链。 Solidity 旨在在以太坊虚拟机 (EVM) 中运行,为开发人员提供...
    编程 发布于2024-11-06
  • 如何在等待线程完成时保持 tkinter GUI 响应?
    如何在等待线程完成时保持 tkinter GUI 响应?
    等待线程完成时冻结/挂起 tkinter GUI在 Python 中使用 tkinter GUI 工具包时遇到的常见问题执行某些操作时界面冻结或挂起。这通常是由于在主事件循环中使用了阻塞操作,例如加入线程。理解 tkinter Mainlooptkinter mainloop() 是负责处理用户输入...
    编程 发布于2024-11-06
  • C 和 C++ 中条件运算符的行为有什么区别?
    C 和 C++ 中条件运算符的行为有什么区别?
    条件运算符:剖析 C 与 C 的差异在编程领域,条件运算符 (?:) 充当计算表达式并根据结果返回特定值的简洁方法。虽然此运算符在 C 和 C 中的操作类似,但出现了一个微妙的区别,可能会影响代码执行。C:对左值的限制在 C 中,条件运算符对返回左值(驻留在特定内存地址的变量)施加限制。这意味着类似...
    编程 发布于2024-11-06
  • Java中如何高效地检查字符串中是否存在某个字符?
    Java中如何高效地检查字符串中是否存在某个字符?
    高效字符串字符验证在Java中,一个常见的任务是判断某个特定字符是否出现在字符串中。虽然传统方法涉及遍历字符串,但利用 indexOf() 的有效替代方法消除了循环的需要。IndexOf() 逐个字符扫描字符串,并返回指定字符所在的第一个实例的索引出现。如果该字符不存在,则返回值 -1。考虑检查字符...
    编程 发布于2024-11-06
  • 如何使用 PHP 为图像添加水印?
    如何使用 PHP 为图像添加水印?
    使用 PHP 向图像添加水印如果您正在使用允许用户上传图像的网站,则可能需要添加这些图像的水印,以防止未经授权的使用。添加水印可确保您的徽标或品牌在每个上传的图像上都可见。以下是如何在 PHP 中实现此目的:使用 PHP 函数PHP 手册提供了使用以下函数的综合示例:imagecreatefromp...
    编程 发布于2024-11-06
  • 如何抑制 Tensorflow 调试输出?
    如何抑制 Tensorflow 调试输出?
    抑制Tensorflow调试信息Tensorflow可能会在初始化时在终端中显示调试信息,包括加载的库和发现的设备。虽然此信息对于调试目的很有用,但它也会使控制台混乱并使跟踪重要消息变得困难。要禁用此调试信息,您可以使用 os.environ 模块:import os os.environ['TF_...
    编程 发布于2024-11-06
  • 如何确定我的 MySQL 查询是否利用了索引?
    如何确定我的 MySQL 查询是否利用了索引?
    识别 MySQL 索引的性能优化 MySQL 查询时,评估索引的有效性至关重要。获取索引性能指标要确定您的查询是否使用索引,请执行以下查询:EXPLAIN EXTENDED SELECT col1, col2, col3, COUNT(1) FROM table_name WHERE col1 ...
    编程 发布于2024-11-06

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3