软考-数据库系统工程师-程序设计语言知识要点

article/2025/8/3 23:26:07

小房学堂,程序设计语言知识要点

汇编、编译、解释系统的基础知识

计算机只能理解由0-1组成的指令,就像一个只会本国语言的人,他听不懂其他国家的语言

而程序员编程使用的是低级语言(汇编语言)或者高级语言如C、C++、Java、Python

那如何让计算机理解程序员编写的语言呢?

那需要一个翻译者。因为编程语言分成了2大类,低级语言(汇编)和高级语言,用高级语言和汇编语言编辑的程序称之为源程序,因此翻译者要做2件事情

1、把汇编语言翻译成机器语言的动作称之为汇编,需要一个叫汇编程序的翻译程序

2、要让高级语言在机器中执行需要一个解释程序或者编译程序的翻译器,对其进行翻译才能在机器中执行

汇编过程:汇编程序对源程序进行语法分析->符号解析->生成机器码

解释程序:已Java 解释器为例,解释器对源程序执行动作,加载字节码 .class文件并对字节码进行验证,根据宿主机指令格式进行解释执行,并在程序运行时进行支持例如异常处理、内存管理、线程同步

编译器动作: 现代编译器主要动作有预处理、编译、汇编、链接,其中预处理主要是宏展开、头文件包含、条件编译如处理#if #else等语句,编译动作主要是对预处理后的文件进行词法、语法、语义分析,输出汇编文件.s , 汇编动作,注意现代编译器基本都包含了汇编程序的功能,它执行的动作和汇编程序一样,将指令码翻译成程序要运行的目标宿主机可识别的指令,记录链接时需要的地址信息比如外部函数的调用,然后生成目标文件.o文件,最后编译器执行链接动作,将一个或者多个.o文件以及所要用到的库文件.a,链接在一起合并代码、数据段最终形成可执行文件

使用解释器和编译器的编程语言各有优劣,一般来说使用解释器的语言具有跨平台特征比如Java,Python,可以实现一次编写到处运行,而使用编译器的语言具有性能更优的特点,所以对应应用来说如果更看中跨平台的易用性那选择解释器型语言,如果应用场合对性能要求更高则建议选择编译器型语言。

程序设计语言的基本成分

程序设计语言的基本成分包括:数据、运算、控制、传输

一、程序语言中的数据成分

程序语言中的数据成分是指一种程序语言中的数据类型,程序语言中的数据类型,可以简单想象成程序语言对数据的一种建模、一种对计算机底层10数据的解析方式,因为计算机本身并不知道如何解析10数字,例如浮点数1.0在一些机器里存储的二进制是3F800000,而这个二进制数如果按无符号整形数据解释则是1,065,353,216

所以数据类型其实指明了数据在计算机中的存储形式。当然数据作为程序语言中被操作的对象,其属性不仅仅有类型,还有名称、作用域、生存期等属性,所以可以按照不同角度对数据进行分类

1、按照运行时数据的值是否能够被改变分为常量和变量

这里引入一个非常重要的概念,左值和右值

左值指存储单元(地址、容器),右值指值(或内容),如下面的left_value 是左值,在编译或者解释器解释时会被替换为一个地址,5是值,是一个具体的内容

left_value = 5

变量具有左值和右值,变量在程序运行中可以被改变,常量只有右值,在程序运行中不能被改变。

2、按数据的作用域范围可以分为全局变量和局部变量

系统为全局变量分配的空间一般在程序运行期间是不会改变的,比如堆区,只读数据区

系统为局部变量分配的空间在程序运行期间是可以改变的,比如栈区

3、按数据的组织形式可以分为不同数据类型

如前面解释的二进制数按不同的类型解释得到不同的值,数据类型可以分为基本类型(比如常见的整型、浮点型、字符串型)、构造类型(比如用户自定义的类)、用户自定义类型(比如用户用typedef等关键字定义的自创类型)、和其他类型

二、程序语言中的运算成分

   程序语言中的运算成分指明允许使用的运算符号和运算规则。例如大多数高级语言都有算术运算、关系运算、逻辑运算

三、程序语言中的控制成分

博姆(Corrado Böhm)与雅科皮尼(Giuseppe Jacopini)​1966年,他们在论文《Flow diagrams, Turing machines and languages with only two formation rules》中证明:任何可计算函数(即图灵可计算的问题)都可以通过顺序(sequence)​选择(selection/if-then-else)​循环(iteration/while)​这三种基本控制结构实现。


http://www.hkcw.cn/article/iihTtgCQtd.shtml

相关文章

6级翻译学习

找到一个中文句子先看中文句子的主谓宾,主系表 不会写的词不要写,不会影响得分,只要其他地方写对

【Rhino】【Python】adjust repeated column marks

#codingutf-8 import rhinoscriptsyntax as rs import re import System.Guiddef process_column_marks():# 获取目标图层中的所有文本对象layer_name "03 STR. DRAFT MEMBER::COLUMN MARK"text_objects rs.ObjectsByLayer(layer_name, True)if not text_objects o…

Goreplay最新版本的安装和简单使用

一:概述 Gor 是一个开源工具,用于捕获实时 HTTP 流量并将其重放到测试环境中,以便使用真实数据持续测试您的系统。它可用于提高对代码部署、配置更改和基础设施更改的信心。简单易用。 项目地址:buger/goreplay: GoReplay is an …

YOLOv5 环境配置指南

系统要求 Windows/Linux/MacOSNVIDIA GPU (推荐) 或 CPUPython 3.8CUDA 11.8 (如果使用 GPU) 安装步骤 1. 安装 Conda 如果还没有安装 Conda,请先从官网下载并安装 Miniconda。 2. 创建虚拟环境 # 创建名为 yolov5 的新环境,使用 Python 3.8 conda…

【算法应用】虚拟力算法VFA用于WSN覆盖,无人机网络覆盖问题

目录 1.虚拟力算法VFA2.WSN覆盖&无人机覆盖应用3.参考文献4.代码获取5.读者交流 1.虚拟力算法VFA 虚拟势场(Virtual Potential Field)最早因解决机器人路径规划及避障问题而被提出。它假设待优化个体会根据某种关系与周围的环境或其他个体产生力的作…

简历制作要精而不简

不得不说,不管是春招,还是秋招,我们在求职时,第一步便是制作一份简历。不得不承认,好的简历,就像一块敲门砖,能让面试官眼前一亮,让应聘成功的概率增添一分。 对于一个初次求职者来…

数据库管理与高可用-MySQL全量,增量备份与恢复

目录 #1.1MySQL数据库备份概述 1.1.1数据备份的重要性 1.1.2数据库备份类型 1.1.3常见的备份方法 #2.1数据库完全备份操作 2.1.1物理冷备份与恢复 2.1.2mysqldump备份与恢复 2.1.3MySQL增量备份与恢复 #3.1制定企业备份策略的思路 #4.1扩展:MySQL的GTID 4.1.1My…

论文解读 - 统一的多模态理解和生成模型综述(上)

一、 简要介绍 近年来,多模态理解模型和图像生成模型都取得了显著的进步。尽管各自取得了成功,这两个领域却独立发展,形成了独特的架构范式:基于自回归的架构主导了多模态理解,而基于扩散的模型则成为图像生成的基石…

核心机制:TCP 断开连接(四次挥手)

断开连接的四次挥手,可能是客户端主动发起的,也可能是服务端主动发起的 而三次握手,一定是客户端先发起的(倒果为因)(先发起的一方定义为客户端) 1.客户端告诉服务器,我要和你断开连接,请你把我删了 2.服务器回应"收到" 3.服务器告诉客户端,我也要和你断开连接,请…

WEBSTORM前端 —— 第3章:移动 Web —— 第3节:移动适配

目录 一、移动Web基础 1.谷歌模拟器 2.屏幕分辨率 3.视口 4.二倍图 二、适配方案 三、rem 适配方案 四、less 1.less – 简介 2.less – 注释 3.less – 运算 4.less – 嵌套 5.less – 变量 6.less – 导入 7.less – 导出 8.less – 禁止导出 五…

【笔记】MSYS2 安装 Python 构建依赖记录Cython + Ninja + Meson + meson-python

#工作记录 📌 安装目标 为构建 Python C 扩展(如 numpy)安装必要依赖: CythonNinjaMeson meson-python ✅ 成功安装命令 pacman -S mingw-w64-x86_64-cython pacman -S mingw-w64-x86_64-ninja pacman -S mingw-w64-x86_64-me…

【染色归一化】staintools工具详讲

staintools工具原代码是没有GPU加速的,代码链接 运行速度较慢,因此,github上有研究者写了pytorch加速版本的staintools 本篇主要讲GPU加速版本的staintools工具的使用教程。 1.背景 目前的公开数据库中的WSI是由不同研究机构制作上传的,这导致WSI有很大的颜色差别,例如:…

历年中山大学计算机保研上机真题

历年中山大学计算机保研上机真题 2025中山大学计算机保研上机真题 2024中山大学计算机保研上机真题 2023中山大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school 不连续1的子串 题目描述 给定一个数字 n n n,输出长度为 n n n 的 01…

历年山东大学计算机保研上机真题

历年山东大学计算机保研上机真题 2025山东大学计算机保研上机真题 2024山东大学计算机保研上机真题 2023山东大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school 从1到100找质数 题目描述 从 1 1 1 到 100 100 100 中找出所有的质数。 输入格式 …

殷咏梅教授:OptiTROP-Breast05亮相2025 ASCO,中国原创TROP2 ADC为mTNBC一线治疗带来新希望

引言 抗体药物偶联物(ADC)以其精准杀伤特性,已成为乳腺癌治疗领域的探索热点。近年来,在全球ADC研发赛道中,中国的ADC力量正逐步崛起,乳腺癌领域首个中国原研、国际品质的TROP2 ADC芦康沙妥珠单抗脱颖而出&…

02.上帝之心算法用GPU计算提速50倍

本文介绍了上帝之心的算法及其Python实现,使用Python语言的性能分析工具测算性能瓶颈,将算法最耗时的部分重构至CUDA C语言在纯GPU上运行,利用GPU核心更多并行更快的优势显著提高算法运算速度,实现了结果不变的情况下将耗时缩短五…

latex 三线表-算法对比表

效果 导入包 \usepackage{booktabs} \usepackage{multirow}表格 \begin{table}[t]\caption{\textbf{Comparison of test results of various algorithms}\label{tab}}\centering\begin{tabular}{ccccc}\toprule\multirow{2}{*}{Algorithms} & \multirow{2}{*}{mAP} &…

蓝桥云课ROS学习C++教程cpp-geeksforgeeks版本

教程 网上教程很多&#xff0c;都可以在蓝桥云课ROS中复习。 #include <bits/stdc.h> using namespace std;int main() {// Creating a map of integer keys// and string valuesmap<int, string> m {{1, "Geeks"},{2,"For"}, {3,"Geek…

rtos,什么意思

RTOS,它的全称是 Real-Time Operating System,中文我们通常称之为“实时操作系统”。 让我们把这个词拆解开来,细细品味: Operating System (操作系统 - OS): 你肯定熟悉我们日常用的 Windows、Linux (桌面版或服务器版)、macOS 等。这些都是操作系统。它们的核心作用是什…

研读论文《Attention Is All You Need》(13)

原文 26 4 Why Self-Attention In this section we compare various aspects of self-attention layers to the recurrent and convolutional layers commonly used for mapping one variable-length sequence of symbol representations ( x 1 , ⋯ , x n ) (x_1,\cdots,x_…