数据库系统工程师—2.程序语言基础知识

程序语言基础知识

程序语言概述

低级语言与高级语言

  • 低级语言:面向机器的语言机器语言、汇编语言;可读性差。程序设计效率低
  • 高级语言:面向各类应用的程序语言,与人类语言相近,便于理解,提高了程序设计的效率。

汇编、解释、编译

高级程序语言必须进行翻译才能为计算机硬件所理解,常用的翻译方式有汇编、解释和编译。

  • 用汇编语言编写的:需要汇编程序翻译成目标程序,然后执行目标程序。
  • 用高级语言编写的:需要解释程序或编译程序进行翻译,然后再运行。

编绎程序和解释程序

1. 编译程序(编译器)

将源程序翻译成目标程序(目标代码),然后再在计算机上运行目标程序。

一般分为两个阶段:

  • 编译阶段:把源程序翻译成目标程序。
  • 运行阶段:执行目标程序

2.解释程序(解释器)

要么直接解释执行源程序,要么将源程序翻译成某种中间代码后再加以执行。它按源程序中语句的执行顺序,逐条翻译并立即执行相关功能。

不生成目标代码

对比项 编译方式 解释方式
目标程序生成 生成独立的目标程序,源程序和编译程序不参与后续执行 不生成独立的目标程序,逐条解释并执行,源程序和解释程序参与运行
执行效率 更高(编译时进行优化,直接执行机器码) 较低(需逐行解释,运行时动态翻译)
灵活性 较低(修改代码需重新编译) 更高(支持动态修改,即时调试)
可移植性 较差(依赖特定平台的目标代码) 更好(通过虚拟机或解释器实现跨平台)
控制权归属 目标程序直接由操作系统/硬件执行,控制权在用户程序 解释器掌控运行流程,控制权在解释程序
典型语言 C、C++、Go(编译型) Python、JavaScript、Ruby(解释型)
适用场景 对性能要求高的系统级开发、嵌入式等 快速开发、脚本任务、跨平台应用

  • 解释方式可移植性高、灵活;源程序和解释程序参与运行
  • 编译方式效率更高;源程序和编译程序不参与后续执行

程序语言的数据成分

  • 常量和变量
  • 全局变量和局部变量
  • 数据类型
    • 基本类型:整型、字符型、实型(科学计数法、浮点)和布尔类型
    • 特殊类型:空类型
    • 用户定义类型:枚举类型
    • 构造类型:数组、结构、联合
    • 指针类型:type *
    • 抽象数据类型:类类型(类似Java的类)

程序语言的控制成分

  • 顺序结构
  • 选择结构
  • 循环结构

编译过程

高级语言相关

  • 词法分析:检查单词、符号是否有问题。int main = 0 (变量名与关键词冲突)
  • 语法分析:检查短句或句子是否语法正确。a = 1;b = 1;=a-b;(语法不存在或不合法)
  • 语义分析:检查每个短句内容合不合法;例如 a = 1;b = “2”;c=a+b  (类型错误)
  • 中间代码生成:根据语义分析的输出,生成中间代码
    • 常用的中间代码有:后缀式(逆波兰式)、四元式(三地址码)常用、树形表示

低级语言相关

  • 代码优化
    • 由于编译器将源程序翻译成中间代码的工作是机械的、按固定模式进行的,因此,生成的中间代码往往在时间和空间方面的效率较差。当需要生成高效的目标代码时,就必须进行优化。
    • 可以在中间代码生成阶段进行,也可以在目标代码生成阶段进行
  • 目标代码生成
    • 目标代码生成是编译器工作的最后一个阶段
    • 把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码和汇编指令代

 

  • 符号表管理:记录源程序中各种符号的必要信息,以辅助语义的正确性检查和代码生成,在编译过程中需要对符号表进行快速有效地查找、插入、修改和删除等操作。
  • 出错处理

四元式

只做了解

X:Y+Z*60

  • ①(inttoreal,60,_,t1)# 将整数60转换为实型,结果存入临时变量t1
  • ②(*,id3,t1,t2) # 将变量id3与t1相乘,结果存入t2
  • ③(+,id2,t2,t3)# 将变量id2与t2相加,结果存入t3
  • ④(:=,t3,_,id1) # 将t3的值赋给变量id1

中缀、前缀、后缀表达式

  • 中缀表达式:即我们通常所使用的表达式。如(a+b)*c-d
  • 前缀表达式(波兰式):将运算符写在前面,操作数写在后面,且不使用括号。-*+abcd
  • 后缀表达式(逆波兰式):将运算符写在后面,操作数写在前面,且不使用括号。ab+c*d-

传值调用和引用调用

  • 传值调用:传值,单向
  • 引用调用:传地址,双向

页面链接:https://www.datazzh.top/archives/1928/2025/03/30/
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇