【软考程序员学习笔记】——程序设计语言

news2024/11/15 21:42:18

在这里插入图片描述

 

目录

 

🍊一、常见的程序设计语言

🍊二、程序设计语言组成

🍊三、后缀表达式

🍊四、传值调用和传址调用

🍊五、语言处理程序

🍊六、解释程序

🍊七、链接程序

🍊八、编译程序

🍊九、出错处理

🍊十、正规式

🍊 十一、有限自动机


一、常见的程序设计语言

Fortran语言(第一个高级程序设计语言科学计算执行效率高)

Pascal语言(结构化程序设计语言表达能力强,Delphi)

C语言(通用、结构化程序设计语言,指针操作能力强,高效)

Lisp语言(函数式程序语言,符号处理,人工智能)

C++语言(C语言基础上增加了类机制,面向对象,高效)

Java语言(面向对象,中间代码,跨平台,通用的程序设计语言)

Python(面向对象,解释型程序设计语言,通用的脚本语言)

PHP(服务器端脚本语言,制作动态网页)

Ruby(简单快捷、面向对象、脚本语言)

Delphi(快速应用程序开发工具,可视化编程环境)

COBOL(数据处理领域最为广泛的程序设计语言,高级编程语言)

XML(可扩展标记语言,标准通用标记语言的子集)

PROLOG(逻辑式语言,建造专家系统、自然语言理解、智能知识库等)

二、程序设计语言组成

数据成分:常量、变量、全局量、局部量以及数据类型。

运算成分:程序语言允许使用的运算符号及运算规则。

控制成分:顺序结构、选择结构、循环结构。

三、后缀表达式

前缀表达式(+ab):把运算符写在运算对象的前面。

中缀表达式(a+b):把运算符写在运算对象的中间。

后缀表达式(ab-):又叫做逆波兰式,把运算符写在运算对象的后面。

四、传值调用和传址调用

传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。

引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。卷数的左值为地址,右值为具体的值。

五、语言处理程序

语言处理程序:将高级语言转换成计算机可执行的机器语言,分为汇编、编译和解释程序

汇编程序:翻译由汇编语言编写的程序,属于低级语言。

解释程序:针对高级语言编写的源程序,直接解释执行源程序。

编译程序:源程序翻译成目标语言程序,然后执行目标程序。

六、解释程序

解释程序是一种语言处理程序

在词法、语法和语义分析方面与编译程序的工作原理基本相同。

但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)

解释程序并不产生目标程序,这是它和编译程序的主要区别。

七、链接程序

用高级语能出言编写的程序要在计算机上运行时,由于计算机只识别二进制,因此需要对源程序依次进行预处理、编译和链接的过程,才能确保源程序正确被执行。

八、编译程序

编译程序的功能是把某高级语言书写的源程序翻译成与之等价的目标程序(汇编语言程序机器语言程序)。

编译程序的工作过程可以分为词法分析语法分析语义分析中间代码生成代码优化目标代码生成符号表管理出错处理,其中其中符号表管理和出错处理贯穿于编译器工作始终。

词法分析:从左到右逐个扫描源程序中的字符,识别其中如关键字(或称保留字)、标识符、常数、运算符以及分隔符(标点符号和括号)等。

语法分析:根据语法规则将单词符号分解成各类语法单位,并分析源程序是否存在语法上的错误。包括:语言结构出错、if…end if 不匹配,缺少分号、括号不匹配、表达式缺少操作数等。

语义分析:进行类型分析和检查,主要检测源程序是否存在静态语义错误。包括:运算符和运算类型不符合,如取余时用浮点数。

九、出错处理

动态错误:发生程序运行时,也叫动态语义错误,包括陷入死循环、变量取零时做除数、引用数组元素下标越界等错误。

静态错误:编译时所发现的程序错误,分为语法错误静态语义错误,语法错误包含:单词拼写错误、标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构上的错误;静态语义分析:运算符与运算对象类型不合法等错误。

十、正规式

正规式是一种表示正规集的工具,正规式是描述程序语言单词的表达式

正规式:由正规文法转换而来,通常正规文法等价于正规式。

正规集:正规文法产生的集合是语言基本字符集上的字符串的一个子集。

 十一、有限自动机

有限自动机:是一种识别装置的抽象概念,能够准确的识别正规集。分为确定(DFA)不确定(NFA)两种。

确定的有穷自动机:当一个状态面对一个输入符号的时候,所转换到的是一个唯一确定的状态

不确定的有穷自动机:当一个状态面对一个输入符号的时候,它所转换到的可能不只一个状态,可以是一个状态集合

一个有限自动机所识别的语言是从开始状态到终止状态所有路径上的字符串的集合。要判断一个字符串能否被指定的自动机识别,就看在该自动机的状态图中能否找到一条从开始状态到达终止状态的路径,且路径上的字符串等于需要识别的字符串。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/671287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国产替代FT232RL-USB到UART桥接控制器 GP232RNL

GP232RNL是一款高度集成的USB到UART桥接控制器,提供了一种简单的解决方案,可以使用最少的元器件和PCB空间,将RS232接口转换为USB接口。GP232RNL包括一个USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和带有完整的调制解调器控制信号的异…

Java GUI开发的几个小工具:apk/aab签名,验证签名,aab转apk

平时经常给apk/aab签名,验证签名,aab转apk等操作,每次输入命令行十分繁琐。于是利用JAVA GUI简单开发了几个jar包界面化工具,提供给大家一起使用。 工具功能JarSignerTool.jar为apk/aab签名ApkSignerTool.jar为apk签名AppSignVer…

Cloud Studio 浏览器插件来啦

当谈到Cloud Studio浏览器插件的优势时,最显著的就是它的便捷性。通过安装Cloud Studio浏览器插件,用户可以在浏览器中直接打开Cloud Studio的开发环境,无需切换到其他应用程序,从而提高了开发效率。 另一个优势是插件对于Github…

Logstash入门简介

目录 Logstash简介介绍用途部署安装测试配置详解输入过滤输出 读取自定义日志日志结构编写配置文件输出到Elasticsearch Logstash简介 介绍 Logstash是一个开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到…

了解一下EPC模式和它的优势

目录 什么是EPCEPC的优势有哪些?BT、BOT、EPC分别是什么模式?总结 什么是EPC EPC是Engineering(工程):代表设计、采购和施工总承包。Procurement(采购):代表采购和物资管理。Constru…

Stable Diffusion提示词总结

提示词基本语法 一、提示词类别 1、内容型提示词 人物及主体特征 服饰穿搭 white dress 发型发色 blonde hair,long hair 五官特征 small eye,big mouth 面部表情 smiling 肢体动作 stretching arms beautiful detailed eyes 美丽细致的眼睛 highl…

数字化如何推动快消品企业实现营销变革

近几年,不确定性在各行各业上演。尤其伴随新一代信息技术的快速发展,消费者的需求和购买渠道也在不断变化。这就要求企业需要通过对消费者潜在需求进行更加深度的挖掘,为消费者提供“更佳的体验”,从而释放消费能力。 在这样的大背…

HTTP协议中的GET和POST接口测试的区别

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言HTTP协议基础GET请…

CVPR2023中的数据集工作(共46篇)

本文搜集了CVPR2023中所有的以数据集发布为主的工作,共搜集到46篇。所有标题都附带文章超链接,请君享用~ An Image Quality Assessment Dataset for PortraitsLOGO: A Long-Form Video Dataset for Group Action Quality AssessmentTowards …

C++学习 数据类型

数据类型存在的意义: 给变量分配合适的内存空间,避免资源浪费。 整型: 整型变量表示的是整数类型的数据 long类型 在 windows 中4字节 linux 中 32位4字节 64位8字节,占用空间的不同,可以表示的取值范围就越广&…

hello TypeScript

在上一章节中我们介绍了typescript的产生背景,和使用typescript开发需要环境和工具,这一节我们就来感受一下typescript吧 一、第一个typescript程序,‘hello ts’ 1. 安装TypeScript编译器 在开始编译TypeScript文件之前,需要先…

LeetCode算法题---两数相加(二)

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 …

Python嵌套列表处理「有问必答系列1」

1. 提问🙋 teacher,如果想把列表里的子列表,拆出来,让他们变成一个列表,可以用什么[可怜] 解答 如果你有一个列表包含子列表,你可以使用Python的extend()函数或列表推导式来实现。下面是两种方法的例子&a…

Dart 3.0 语法新特性 | switch 匹配加强

theme: cyanosis 一、 重新审视 switch 关键字 众所周知, switch 关键字用于流程控制: 可以基于一个对象进行匹配,并通过 case 关键字产生分支语句,进行不同的逻辑处理。其中有一个非常值得注意,使用者很容易忽略的一点…

Jetpack Compose —— ProgressBar

Jetpack Compose的ProgressBar是一种用户界面组件,用于向用户展示长时间操作的当前进度。ProgressBar可以有两种形式:线性和环形,这两种形式都可以通过Jetpack Compose轻松实现。 注意:从Jetpack Compose 1.0版本开始&#xff0c…

ChatGPT使用的SSE技术是什么?

在现代web应用程序中,实时通信变得越来越重要。HTTP协议的传统请求/响应模式总是需要定期进行轮询以获得最新的数据,这种方式效率低下并且浪费资源。因此,出现了一些新的通信技术,如WebSocket和SSE。但是,GPT为什么选择…

R语言学习4:比例的假设检验

一、实验目的 1. 掌握理解两个总体比例假设检验的相关概念。 2. 掌握理解两个总体比例假设检验的相关方法。 3. 熟悉R语言等语言的集成开发环境。 二、实验分析与内容 完成教材P98的第4题 在一个流行病事件中,A地区656 例病人中完全康复了474人,B地区568例病人中完全康复了…

k8s delete namespace Terminating

版本情况 kubenetes版本: v1.19.10 docker版本: v20.10.6 一、问题经过 早上发现 kubectl delete ns时, 删除namespace一直处于Terminating状态 尝试加上--force参数,执行kubectl delete ns --force,也是一样Terminating 当时Terminating截图 1、猜测…

《网络安全0-100》低层协议安全性

低层协议安全性 IP协议 对于网络层,IP协议是其中一个非常重要的协议。网络层的IP地址相当于数据链路层的Mac地址。协议字段如下,每行4字节,总共4*520字节。 IP协议安全性:IP协议不能保证数据就是从数据包中给定的源地址发出的&am…

高速 AD/DA 实验

目录 高速 AD/DA 实验 1、简介 1.1、AD9708 芯片 1.2、AD9280 芯片 2、实验任务 3、硬件设计 4、程序设计 4.1、AD/DA 顶层模块代码 4.2、创建一个 ​​​​​​​ILA IP 核 4.3、创建一个ROM IP核,将 .coe 文件保存到生成的 Rom IP 核中 4.4、DA 数据发…