二、程序语言基础知识
1.语言概述
基本概念
机器指令程序,最基本的计算机语言,二进制的机器指令序列;
汇编语言,书写格式取决于特定计算机的机器指令。
以上皆是低级语言,面向机器的语言。
高级语言:不依赖于机器硬件的程序语言。如:java、c、c++、php、python……
语言处理程序:将高级语言或汇编语言翻译为机器语言。
方式分为:汇编、解释、翻译
源程序
解释程序:即解释器,将源程序翻译为中间代码
编译程序:即编译器,将源程序翻译成目标语言程序
区别:解释器,不生成独立的目标程序,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序控制权在解释程序;编译器,将源程序翻译成独立保存的目标程序在机器上运行,源程序和编译程序都不在参与到目标程序的执行过程中。
程序语言的定义:语法、语义、语用、语境
通用程序设计语言:程序语言能够用于范围广泛的问题求解过程。如c、java、
程序语言的分类:
命令式程序设计语言:基于动作的语言,面向过程。如c、结构化程序设计语言
面向对象程序设计语言:c++、java、
函数式程序设计语言:
逻辑型程序设计语言:
语言基本成分:数据、运算、控制、传输、
数据:名称、类型、存储类别、作用域、生存期
值是否改变分类:常量、变量
作用域范围分类:全局量、局部量
数据组织形式分类:
运算:算数运算、关系运算、逻辑运算、位运算
控制:顺序结构、选择结构、循环结构
函数
2.语言处理程序
将高级语言或汇编语言翻译为机器语言。
分为:汇编程序、编译程序、解释程序
汇编语言程序:
三类语句:指令语句、伪指令语句、宏指令语句
汇编程序:将汇编语言编写的程序翻译成机器指令程序。
编译程序:将源程序翻译成目标语言程序(汇编语言或机器语言)
文法:
字母表、字符、字符串、空串、连接、
字符串集合运算:或、积、幂、正则闭包、闭包
文法分类
状态转换图、状态转换矩阵
中间代码分类:后缀式(逆波兰式)、三元式、四元式、树形表示
语法单位:算数表达式、布尔表达式、赋值语句、控制语句……
分配存储空间:基本数据类型、结构化数据类型(数组、记录……)、连接数据(返回地址、参数……)
分配依据:作用域、生存期定义的规则
分类:静态存储分配(编译时确定)、动态存储分配(允许递归过程、可变数据结构;栈分配、堆分配)
优化:转换为等价、有效的目标代码;可在编译的各个阶段进行,最主要的优化是在目标代码生成以前对中间代码进行的
1.中间代码形式:树与后缀表示形式(解释器)、四元式形式(编译器,与机器指令格式接近)
2.目标代码:汇编语言形式、机器指令形式(绝对机器指令代码、可再定位机器代码)
3.寄存器的分配
4.计算次序的选择
解释程序基本原理
结构:分析部分(词法、语法、语义)、解释部分
解释方式与编译方式的比较:
1.编译可能取得更高的效率
2.解释灵活性更高
3.解释可移植性更高
DFA与NFA:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?