程序设计语言基础-编译过程概述+表达式

news/2024/11/16 23:42:47/文章来源:https://www.cnblogs.com/xieshier/p/18376879

程序设计语言分类

面向机器的语言

由0、1组成的机器指令序列或汇编语言(如:move ax,bx),可读性差,难以修改和维护。

面向应用程序的语言

如,Java、C、C++、Python、Delphi、PASCAL等,更接近人类语言,提高程序设计效率。

程序设计语言分类

image

生成目标代码过程

image

编译程序

词法分析

输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词,删掉无用的信息,报告分析时的错误
image

语法分析阶段

语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位。通过语法分析确定整个输入串是否构成一个语法上正确的程序
image

语义分析阶段

主要检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用。语义分析分为静态分析和动态分析两个部分。静态语义分析使用语法制导翻译

点击查看代码
public class Example {
public static void main(String[] args) {
int x = 5;
int y = "Hello"; // 静态类型错误System.out.println(“Sum: ” + (x / 0)); // 动态类型错误}
}

中间代码

不依赖具体计算机,表现形式如下。

  1. 后缀式(逆波兰式)
  2. 树型表示
  3. 三元式:X =( a + b)( c + d )
    ①(+ , a , b)②(+ , c , d )③(
    , ① , ②)④( =,③,x)
  4. 四元式: X =(a*b)+ c/d
    ①( *, a , b , T1)②( / , c , d , T2)③( +, T1 , T2 , T3 )④( =
    ,T1,—,X)

表达式出错处理

静态错误(编译时出现)

语法错误,如:单词拼写错误、标点符号错误、表达式缺操作数、
括号不匹配等。
静态语义错误,如:运算符与运算对象类型不合法。

动态错误(运行时出现)

如:变量取0做除数。
如:引用数组下标越界

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软RDL远程代码执行超高危漏洞(CVE-2024-38077)漏洞检测排查方式

漏洞名称:微软RDL远程代码执行超高危漏洞(CVE-2024-38077) CVSS core: 9.8漏洞描述: CVE-2024-38077 是微软近期披露的一个极其严重的远程代码执行漏洞。该漏洞存在于Windows远程桌面许可管理服务(RDL)中,攻击者无需任何权限即可实现远程代码执行,获取服务器最高权限…

人生的意义

人生的意义。(一) 人生的意义:美好的事物吸引(使)美好的人去爱。爱一个事物后,就在意这个事物,想和这个事物在一起,依恋这个事物(不想和这个事物分开),想充分感受和体验这个事物,追求和得到这个事物,关心和守护这个事物,让这个事物幸福,等等很多情感。 俗话说“…

明明存在InterSystems ODBC,但IIS站点的程序连接数据库时却提示ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

这是因为InterSystems ODBC只提供了32位版本的支持 而我们的web程序部署到IIS上后默认没有开启32位应用程序支持 需要在IIS应用程序池.高级设置中,将[启用32位应用程序]选项设置为true

你每天的销售数据日报需要多少时间处理?如果有办法能30秒出报表,你怎么选?

每天的销量数据的获取对于品牌连锁企业来说,是商品管理部门、营运部门同事或者企业领导每天早上的必做事情之一。因此,对于如何准确,快速,低代价的获取销量信息,是一门艺术。据观察了解,目前来说各企业获取每日销量数据的方式参差不齐,大致来说主要分为两类:①、每日销…

SciTech-Mathmatics-Analysis: important inequalities 重要的几个不等式

均值不等式排序不等式Trigonometry inequalityNewton inequalityBernoulli inequalityChebyshev inequality

REST framework:接口文档

REST framework通过第三方库可以自动帮助我们生成网页版的接口文档,自动接口文档能生成的是继承自APIView及其子类的视图 1、安装依赖 REST framewrok生成接口文档需要coreapi库的支持pip install coreapi -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.…

二维加工系统(切割,裁断,点胶)

二维加工软件(切割,点胶,钻孔,冲裁); (1)支持dxf导入:(2)支持路径编程;(3)支持排料(4)支持 路径模拟;(5)支持自动运行切割;

RK3588添加支持RS485收发

RS485是在串口基础上利用电平转换芯片,将TTL电平转换成485的差分信号,电路图如下:RO: 接收器输出----接RXRE: 接收器输出使能(低电平-接收使能)DE: 驱动器输出使能(高电平-发送使能)DI: 驱动器输入----接TX在传输数据时候需要将RS485 RE置高,发送使能,接收禁止;发送完…

网站图片显示错误怎么办

打开HTML文件:使用文本编辑器打开包含图片的HTML文件。检查图片路径:寻找<img>标签,检查src属性是否正确指向图片文件。 例如:html<img src="images/example.jpg" alt="Example Image">验证路径:确认路径是否正确,如果是相对路径,确保它…

STL map、set、multi_map、multi_set 基本概念与用法

目录基本概念关联式容器键值对树形结构的关联式容器set描述set的使用map描述map的使用multiset描述multiset简单使用multimap描述底层结构 基本概念 关联式容器在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、 forward_list(C++11)等,这些容器统称为…

如何通过PHP脚本重置密码

<?php $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database";// 创建连接 $conn = new mysqli($servername, $username, $password, $dbname);// 检测连接 if ($con…

请问网站密码错误怎么找回

当遇到网站密码错误的情况时,可以采取以下几种方式来找回密码:使用找回密码功能:大多数网站都会提供“忘记密码”或“找回密码”的功能。 在登录页面下方通常可以看到这样的链接或按钮。通过邮箱找回:点击“忘记密码”后,网站会要求你提供注册时使用的电子邮件地址。 网站…