程序设计语言基础知识

news2024/11/27 15:44:59

        1.1程序设计语言的基本概念

                1、低级语言与高级语言:

                       低级语言:汇编语言

                        高级语言:常见的有Java、C、C++、PHP、Python、Delphi等

                2、翻译形式:汇编、解释、编译

                3、程序设计语言的定义:语法、语义、语用

                4、程序设计语言的分类:

                                过程式(命令式和结构式):FORTRAN、Pascal、C

                                面向对象:Simula、Smalltalk、C++、Objiective C、Java、Python

                                函数式:lisp、python、scala

                                逻辑式:Prolog

                                脚本语言:shell、bat、js、python

       1.2 程序设计语言的基本成分

                程序语言的基本成分包括数据、运算、控制和函数等

                1、数据:

                        常量和变量

                        全局量和局部量

                        数据类型

                2、运算:算术运算、关系运算、逻辑运算

                3、控制:顺序结构、选择结构、循环结构

        4、函数:定义、声明、调用(值调用、引用) 

1.3 汇编程序基本原理

        1、汇编语言

                汇编语言是为特定的计算机或计算机系统设计的面向机器的符号化的程序设计语言。用汇编语言编写的程序称为汇编语言源程序。因为计算机不能直接识别和运算符号语言程序,所以要用专门的翻译程序——汇编程序进行翻译。用汇编语言编写程序要遵循所用语言的规范和约定。

                汇编语言源程序由若干条语句组成,一个程序中可以有三类语言:指令语句、伪指令语句和宏指令语句。

        2、汇编程序

                汇编程序是指将汇编语言所编写的源程序翻译成机器指令的程序。汇编程序一般需要两次扫描源程序才能完成翻译过程。

                第一次扫描:检查语法错误,确定符号名字,建立使用的全部符号名字表,每一符号名字后跟一个对应值(地址或数值)。

                第二次扫描:在第一次扫描的基础上,将符号地址转换成真地址(代真),利用操作码表将助记符转换成相应的目标码。

1.4编译程序基本原理

        1.编译程序

        编译程序的工作过程分为六个阶段如下图所示           2、文法

                                                                G={V_{t},V_{n},S,P}

V_{t}是一个非空有限集合,它的每一个元素被称为终结符号;V_{n}也是一个非空有限集合,它的每一个元素称为非终结符号;S被称为文法G的开始符号;P是一个非空有限集合,它的元素称为产生式。

        1型文法:又称为上下文有关文法;

        2型文法:又称为上下文无关文法;

        3型文法:又称为正规文法,使用最多;

        0型文法:短文法。

        

3、有限自动机

        计算机控制系统的控制程序具有有限自动机(FA)的特征,可以用有限状态机理论来描述。

        1、确定有限自动机(DFA)。自动机的每一个状态都有对字母表中所有符号的转移,一个确定的有限自动机是个五元组(S,∑,f,s_{0},Z)其中:

                S是一个有限集,其中每个元素称为一个状态,

                ∑是一个有穷字母表,其每个元素称为一个输入字符。

                f是S*∑——>S上的单值部分映像。f(A,a)=Q表示当前状态为A,输入为a时,将转换到下一状态Q,Q被称为A的一个后继转态。

                s_{0}∈S,是唯一的一个开始状态。

                Z是非空的终止状态集合,Z\subseteqS

          一个DFA可以用两种直观的方式表示:状态转换图和状态转换矩阵。状态转换图简称为转换图,是一个有向图,DFA中的每个状态对应转换图中的一个结点,DFA中的每一个转换函数对应图中的一条有向弧,若转化函数为f(A,a)=Q,则该有向弧从结点A出发,进入结点Q,字符a是弧上的标记。

        非确定有限自动机(NFA),自动机的状态对字母表中的每个符号可以有转移,也可以没有转移,对一个符号甚至可以有多个转移,一个不确定的有限自动机也是一个五元组,它与确定有限自动机的区别如下:

                f是S*∑——>2S上的映像。对于S中的一个给定状态及输入符号,返回一个状态的集合,即当前状态的后继状态不一定是唯一确定的。

                有向弧上的标记可以说\xi

        4、正规表达式

        对于字母表∑,其上的正规式及其表示的正规集可以递归定义如下。
        (1)\xi是一个正规式,它表示集合L(\xi)={\xi}。
        (2)若a是∑上的字符,则a是一个正规式,它所表示的正规集为{a}。
        (3)若正规式,r和s分别表示正规集L(r)和L(s),则:
        r|s是正规式,表示集合L(r)UL(s)。

        r•s是正规式,表示集合L(r)L(s)。

        r*是正规式,表示 集 合(L(r))*。
        (r)是正规式,也表示L(r)。
        仅由有限次地使用上述三个步骤定义的表达式才是∑上的正规式,其中运算符“|”“。”“*”分别称 为“或”“连接”和“闭包”。在正规式的书写中,连接运算符“。”可省略。运算符的优先级从高到低的顺序排列为“*”“。”“|”。
        设∑={a,b},表2-1列出了∑上的一些正规式和相应的正规集。

                

若两个正规式表示的正规集相同,则认为二者等价,两个等价的正规式U和V记为 U=V。例如,b(ab)*=(ba)*b,(al)*=(a*b*)*。设U、V和 T均为正规式,正规式的代数性质见下表 

1.5解释程序的基本原理

        解释程序是另一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但是在运行用户程序时,它直接执行源程序或源程序的中间代码,因此,解释程序不产生源程序的目标程序,这是它和编译程序的主要区别         

 

                                      

 

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

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

相关文章

汽配企业WMS系统:提升作业效率与过程管控

随着汽配企业竞争的加剧和业务模式的复杂化,许多企业意识到提高仓库作业效率和成本控制能力是企业成功的关键。因此,越来越多的企业选择引入WMS仓储管理系统。然而,汽配企业产品复杂,且从业的人员大部分是老一辈人员,内…

ROS2学习(二)工作空间,节点

工作空间介绍 workspace 是存放整个项目的大目录。 其中包含: src:源码。 build:编译文件。 install:安装空间,存放编译成功后的目标文件。 log:日志。 我们新建一个工作空间目录,其中包…

15W网络有源音箱 校园广播音箱 poe广播音箱

SV-7042T 15W网络有源音箱 校园广播音箱 poe广播音箱 一、描述 SV-7042T是深圳锐科达电子有限公司的一款壁挂式网络有源音箱,具有10/100M以太网接口,可将网络音源通过自带的功放和喇叭输出播放,可达到功率15W。同时它可以外接一个15W的无源…

Cenos7 搭建Minio最新版集群部署服务器(一)

------> 道 | 法 | 术 | 器 | 势 <------ 多台服务器间免密登录|免密拷贝 Cenos7 搭建Minio集群部署服务器(一) Cenos7 搭建Minio集群Nginx统一访问入口|反向动态代理(二) Spring Boot 与Minio整合实现文件上传与下载(三) 附录查看安装的Minio版本: [rootwww…

计算机竞赛 python opencv 深度学习 指纹识别算法实现

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; python opencv 深度学习 指纹识别算法实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;4分创新点&#xff1a;4分 该项目较为新颖…

清华团队领衔打造,首个AI agent系统性基准测试网站问世AgentBench.com.cn

AI 智能体,或自主智能代理,不仅是诸如贾维斯等科幻电影中的人类超级助手,也一直是现实世界中 AI 领域的研究热点。尤其是以 GPT-4 为代表的 AI 大模型的出现,将 AI 智能体的概念推向了科技的最前沿。 在此前爆火的斯坦福“虚拟小镇”中,25 个 AI 智能体在虚拟小镇自由生长…

轧钢传动控制系统液压比例阀控制器

轧钢传动控制系统是用于控制轧钢机械的电气系统&#xff0c;包括调速和控制系统两部分。 调速系统主要用来平滑调节转速&#xff0c;其核心部件是直流电动机调速单元。控制系统主要用于调节和稳定轧机的工作状态&#xff0c;使轧制过程始终处于最佳工作状态&#xff0c;其核心…

高忆管理:爆仓是什么意思?

爆仓是指在金融商场中&#xff0c;持有的某种资产价格大幅下跌&#xff0c;导致出资者的保证金不足以支持持仓&#xff0c;被逼平仓的现象。在股票、期货、外汇等商场中均或许呈现爆仓现象。在本文中&#xff0c;咱们将从多个视点分析爆仓的含义、原因和影响。 一、爆仓的含义 …

用于网页抓取的最佳 Python 库

探索一系列用于网页抓取的强大 Python 库&#xff0c;包括用于 HTTP 请求、解析 HTML/XML 和自动浏览的库。 网络抓取已成为当今数据驱动世界中不可或缺的工具。Python 是最流行的抓取语言之一&#xff0c;拥有一个由强大的库和框架组成的庞大生态系统。在本文中&#xff0c;我…

W5100S-EVB-PICO 做UDP Server进行数据回环测试(七)

前言 前面我们用W5100S-EVB-PICO 开发板在TCP Client和TCP Server模式下&#xff0c;分别进行数据回环测试&#xff0c;本章我们将用开发板在UDP Server模式下进行数据回环测试。 UDP是什么&#xff1f;什么是UDP Server&#xff1f;能干什么&#xff1f; UDP (User Dataqram …

pdf怎么压缩?一分钟学会文件压缩方法

PDF文件过大一般主要原因就是内嵌大文件、重复的资源或者图片比较多&#xff0c;随之而来的问题就是占用存储空间、被平台限制发送等等&#xff0c;这时候我们可以通过压缩的方法缩小PDF文件大小&#xff0c;下面就一起来看看具体的操作方法吧。 方法一&#xff1a;嗨格式压缩大…

Linux_5_Shell脚本编程

目录 1 基础1.1 程序组成1.2 程序编程风格1.3 编程语言1.4 编程逻辑处理方式 2 shell 脚本语言的基本结构2.1 shell脚本的用途2.2 shell脚本基本结构2.3 创建shell脚本过程2.4 脚本注释规范2.5 第一个脚本2.6 脚本调试2.7 变量2.7.1 变量2.7.2 变量类型2.7.3 编程语言分类2.7.4…

详谈数据库InnoDB引擎与MyISAM引擎

1. 简单了解什么是存储引擎? 相信很多人在听到存储引擎这个名字的时候可能会有些疑惑&#xff0c;听着名字就觉得有些难&#xff0c;导致很多人没有兴趣了解它&#xff0c;那么它这究竟是个什么东西&#xff1f; 我来说明一个场景&#xff0c;大家就能大概明白它是做什么用的…

【kubernetes】在k8s集群环境上,部署kubesphere

部署kubesphere 学习于尚硅谷kubesphere课程 前置环境配置-部署默认存储类型 这里使用nfs #所有节点安装 yum install -y nfs-utils# 在master节点执行以下命令 echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports # 执行以下命令&#xff…

mybatis(下)

注解方式 常用注解标签 Insert&#xff1a;插入 sql , 和 xml insert sql 语法完全一样 Select &#xff1a;查询 sql, 和 xml select sql 语法完全一样 Update &#xff1a;更新 sql, 和 xml update sql 语法完全一样 Delete &#xff1a;删除 sql, 和 xml delete sql 语法完…

【深入理解ES6】字符串和正则表达式

概念 字符串&#xff08;String&#xff09;是JavaScript6大原始数据类型。其他几个分别是Boolean、Null、Undefined、Number、Symbol&#xff08;es6新增&#xff09;。 更好的Unicode支持 1. UTF-16码位 字符串里的字符有两种&#xff1a; 前 个码位均以16位的编码单元…

Excel表格制作,快速提升效率好方法!

“作为一个刚开始工作的职场新人&#xff0c;每天要做各种不同的表格&#xff0c;真的让我很崩溃&#xff0c;感觉我对这些表格制作一点都不了解&#xff0c;Excel表格制作有什么比较好的方法吗&#xff1f;” Excel作为一款广泛应用于各个领域的管理和分析工作&#xff0c;给我…

SAP ME2L/ME2M/ME3M报表增强添加字段(包含:LMEREPI02、SE18:ES_BADI_ME_REPORTING)

ME2L、ME2M、ME3M这三个报表的字段增强&#xff0c;核心点都在同一个结构里 SE11:MEREP_OUTTAB_PURCHDOC 在这里加字段&#xff0c;如果要加的字段是EKKO、EKPO里的数据&#xff0c;直接加进去&#xff0c;啥都不用做&#xff0c;就完成了 如果要加的字段不在EKKO和EKPO这两个…

RISC-V公测平台发布 · 7-zip 测试

简介 7-Zip 是一个开源的压缩和解压缩工具&#xff0c;具有高压缩比和快速解压缩的特点。除了普通的文件压缩和解压缩功能之外&#xff0c;7-Zip 还提供了基准测试功能&#xff0c;通过压缩和解压缩大型文件来评估系统的处理能力和性能。 7-Zip 提供了一种在不同压缩级别和多…

浅析kubernetes部署:javashop部署概览

javashop部署概览 节点规划 首先我们对节点进行规划&#xff0c;方便起见&#xff0c;我们进行如下简单的规划&#xff1a; 这里请根据您的实际情况进行合理的资源安排&#xff0c;或和我们售后工程师讨论形成方案。 域名规划 我们以test.com为主域名规划我们的系统域名如下&…