搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
凡人多烦事01
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Windows修改Rabbitmq端口号_windows rabbitmq 修改端口etc下只有个文档
2
各个浏览器的详细信息-前端必须知道的知识
3
基于rust的区块链实现_rust 区块链
4
MySQL 数据库安装教程详解(linux系统和windows系统)_mysql安装
5
怎么解决上台发言紧张的问题_不敢上台发言很紧张怎么办
6
深度学习之基于Pytorch姿态估计的仰卧起坐计数系统
7
用jframe给MySQL输入数据_编程实现利用 DataFrame 读写 MySQL 的数据
8
用WebStorm编辑Markdown_webstorm 编辑.md文件
9
基于MATLAB的Hybrid A*算法机器人路径规划_hybrida*代码matlab
10
PMP第二章——项目管理过程_pmp项目管理步骤
当前位置:
article
> 正文
软考中级设计师知识笔记整理--程序语言基础知识_程序语言基础知识软考
作者:凡人多烦事01 | 2024-04-30 21:23:21
赞
踩
程序语言基础知识软考
章节梳理
低级语言:通常称机器语言和汇编语言为低级语言。机器语言是指用0,1字符串组成的机器指令序列。
编译程序和解释程序:用某种高级语言或汇编语言编写的程序称为 源程序,它不能直接就在计算机上执行。如果源程序是使用汇编语言编写的,则需要一个称为汇编程序大的翻译程序将其翻译成目标程序后才能执行。如果源程序是使用某种高级语言编写的,则需要相应的解释程序或编译程序对其进行翻译,然后才能在机器上运行。
在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序不
再
参与目标程序的执行过程。
在解释方式下,解释程序和源程序
(
或其某种等价表示
)
要参与到程序的运行过程当中,运行程序的控制权在解释程序中。
程序设计语言的定义:一般涉及语法,语义,语用和语境等方面。
命令式程序设计语言:基于动作语言,开始于Fortran、Pascal、和C语言。
面向对象的程序设计语言:C++、java和Smalltalk(Simula提出对象和类的概念)
函数程序设计语言:LISP为代表,其中大量使用递归
逻辑型程序设计语言:形式以逻辑为基础的语言,该语言的代表是建立在关系理论和一阶谓词理论基础上的Prolog
变量具有左值和右值,在程序运行过程中其右值可以改变,常量只有右值,在程序运行中右值不能改变。
词法分析:对源程序从前到后(从左到右)逐个字符进行扫描,从中设别一个个“单词”符号。
语法分析:在词法分析的基础上,根据语言的规则将单词符号序列分解成各类语法单位,如“表达式”,“语句”和“程序”等。词法和语法分析本质上都是对源程序的结构进行分析。
语义分析:主要审查源程序是否存在语义错误,并收集类型信息供后面的代码使用,只有 语法和语义都正确的源程序才能翻译成正确的目标代码。(是编译过程的逻辑阶段)
中间代码生成阶段:中间代码起着编译器前端和后端分水岭的作用,使用中间代码有利于提高编译程序的可移植性。常用有 后缀式,三元式,四元式和树等形式。(可以考虑机器的特性,编写生成中间代码的编译程序相对容易)
代码优化:是对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的代码更加高效。
目标代码生成阶段:是把中间的代码转化成特定机器上的绝对的指令代码,可重定位的指令代码或汇编指令代码。这是编译的最后阶段,它的工作与具体的机器密切相关。
符号表管理:在符号表记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成。
出错处理:用户编写的源程序中的错误大致可分为静态错误和动态错误。
语法分析:自顶向下(是对给定的符号串试图自顶向下地为其构造一棵语法树,或者说从文法的开始符号出发,为其构造一个最左的推导)、自底向上(是对给定的符号串试图自底向上地为其构造一棵语法树,或者说从给定的符号串本身出发,试图将其归约为文法的开始符号)。
算符优先文法属于
自底向上
的分析法,它利用各个算符间的优先关系和结合规则来进行语法分析,特别使用于分析各种表达式。
传值调用:最显著的特征就是被调用的参数内部对形参的修改不影响实参的值
引用调用:是将实参的地址传递给形参,使得形参的地址就是实参的地址。
错题整合
上下文法无关文法是形式语言理论中一种重要的变换文法,用来描述上下文无关语言,在乔姆斯基分层中称为2型文法。由于程序设计语言的语法基本都是上下文无关文法,因此应用十分广泛。
解释程序并不产生目标程序,这是它和编译程序的主要区别。
移进-归约分析是一种自底向上的分析方法。
在解释器上运行程序比直接运行编译过的代码要慢,是因为解释器每次都必须去分析并转译它所运行的程序行,而编译过的程序直接运行即可。
逆波兰将运算符写在操作数之后,因此也叫后缀表达式,要利用栈进行求值。
死循环错误属于典型的语义错误
,但静态的语义错误可被编译器发现。
C程序中全局变量的存储空间在 静态数据区 分配
代码区:存放函数体的二进制代码、
栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等
堆区:一般由
程序员
分配释放,若程序员不释放,程序结束时可能由操作系统回收。
静态数据区:内存在程序启动的时候才被分配,而且可能直到程序开始执行的时候才被初始化,所分配的内存在程序的整个运行期间都存在,如全局变量,static变量等。
自顶向下的语法分析方法包括递归下降分析法和预测分析法。
语法分析的任务是根据语言的语法规则分析单词串是否构成短语和句子,即表达式,语句和程序等基本语言结构,同时检查和处理程序中的语法错误
---------------------------------------------不做架构的开发不是好厨师,我是Zeus宙斯---------------------------------------------------------
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/凡人多烦事01/article/detail/515263
推荐阅读
article
c++
顺序
栈
基本操作
案例(文件)_
c++
顺序
栈
...
//
顺序
栈
的
基本操作
#include
#include
using namesp...
赞
踩
article
自带
IDEA
插件
的阿里开源诊断神器
Arthas
线上项目BUG调试_
arthas
idea
插件
...
记得之前写过一篇
Arthas
使用教程 ,通过使用
Arthas
我们既可以实现线上调试,还可以实现热修复。最近逛了下Arth...
赞
踩
article
软件设计师教程学习笔记(二)
程序设计
语言
基础知识
_
文法
和
语言
的
形式
描述...
1、计算机
的
组成_
文法
和
语言
的
形式
描述
文法
和
语言
的
形式
描述 1、...
赞
踩
article
翻译插件
Translation
和
AndroidLocalize
...
翻译插件
Translation
和
AndroidLocalize
翻译插件
Translation
和AndroidLocali...
赞
踩
article
md5
加密算法...
理解
md5
md5
加密算法
md5
是什么?
md5
是一种信息摘要算法(message-diges...
赞
踩
article
STM32
参考代码,编译时出现“
cannot
open
source
input
file
, no ...
最近下载了
STM32
CubeG0的软件包,打开里面的Keil样例工程,却报了两个异常:打开keil工程时,即弹出“Loa...
赞
踩
article
快速了解
git
和
git
hub
是什么
,
30
分钟
速通版
...
多做项目上手操作
,
无他唯手熟尔本文由博客一文多发平台OpenWrite发布!快速了解
git
和
git
hub
是什么
,
...
赞
踩
article
Cache
-
Control
缓存_iis
cache
control
...
缓存简介我们在用http访问时,会先发送一个请求,之后服务器返回一个应答。在开发者工具中,点击网络可以查看。第一部分Ge...
赞
踩
article
华为
OD加面 -
手
撕
代码
真题(
Java
)
_
华为
od
手
撕
代码
题目
...
给你一个六位 正 整数 num 。请你使用 num 中的 数位 ,将 num 拆成两个新的整数 new1 和 new2 ...
赞
踩
article
php
词法
语义
分析
,[总结]
语法
制导
翻译
/
语义
分析
...
语义
分析
理论中并没有
语法
和词法
分析
阶段中那么多算法。如同整个编译原理里大部分理论一样,其都是为实践编码提供理论支持,从而...
赞
踩
article
浅谈
http
中
的
Cache
-
Control
...
前言我们用
http
访问时,会先发送一个请求,之后服务器返回一个应答,在Chrome的调试器(按F12或右击选择检查)
中
展...
赞
踩
article
二叉树
的
先序
遍历
、
中序
遍历
、
后序
遍历
、
层次
遍历
-图文详解...
二叉树
的
遍历
详解AProgrammer微信公众号:AProgrammer关注他概述
二叉树
的
遍历
是一个很常见的问题。二叉...
赞
踩
article
23
届
计算机专业
毕业生
,
找不到对口
工作
,
网络安全
绝对是目前最好的就业方向_
23
届无
工作
经验
...
就拿客观数据来说
,
网络安全
市场目前平均薪资水平在2w
,
刚入门的新手小白也可以拿到8-15k薪资。_
23
届无
工作
经验
23
届...
赞
踩
article
Android
性能
优化
面试
题集锦
,
威力加强版_
android
程序
优化
面试
...
其实客户端开发的知识点就那么多
,
面试
问来问去还是那么点东西。所以
面试
没有其他的诀窍
,
只看你对这些知识点准备的充分程度。s...
赞
踩
article
还天天熬夜
加班
做
报表
?
其实
你根本不懂
如何
高效
做
报表
_
如何
更好
的
做
报表
工作...
问数据分析师
的
日常工作是什么_
如何
更好
的
做
报表
工作
如何
更好
的
做
报表
工作 ...
赞
踩
article
云计算时代:
SFP
、
SFP
+、
SFP
28
、
Q
SFP
+和Q
SFP
28
光纤
模块
详解_
sfp
q
sfp
s...
不同类型的光纤
模块
具有不同的数据传输速率、体积、功耗等特点,适用于不同的网络需求和环境。在众多光纤
模块
中,
SFP
、
SFP
...
赞
踩
article
Pytorch
使用
tensorboard
X
可视化
。超详细!!!_
tensorboard
如何生成
可以
外...
1 引言 我们都知道tensorflow框架
可以
使用
tensorboard
这一高级的
可视化
的工具,为了使用tensorb...
赞
踩
article
无法
打开
源
文件
??一招教
你
解决
所有问题!!_
无法
打开
源代码
文件
...
如果
你
发现
你
的计算机找不到对应的头
文件
,不要慌!举个例子,比如我上面展示的
无法
找到源
文件
,这个
文件
是一个 C 语言图形库...
赞
踩
article
Git
配置
处理
客户端
无法正常访问到
github
原
网站
时,
npm
下载
依赖
包失败的问题...
【代码】
Git
配置
处理
客户端
无法正常访问到
github
原
网站
时,
npm
下载
依赖
包失败的问题。
Git
配置
处理客户...
赞
踩
article
postgreSQL
基本教程_
pgsql
教程...
postgreSQL
基本教程_
pgsql
教程
pgsql
教程
postgreSQL
创建关系数据...
赞
踩
相关标签
栈
intellij-idea
开源
bug
android
安全
keil mdk
arm
stm32
嵌入式
博客
程序
华为od
java
开发语言
手撕代码
算法
php词法语义分析
二叉树
先序遍历
中序遍历
层次遍历
web安全
网络