首页 > 其他分享 >大三每日总结

大三每日总结

时间:2023-09-16 18:23:37浏览次数:38  
标签:总结 代码生成 语法分析 每日 中间代码 语义 词法 源程序 大三

学习软考

程序设计语言
机器语言和汇编语言为低级语言
语言之间翻译的基本形式,有汇编,解释和编译
源程序是用某种高级语言编写的则需要对应的解释程序或编译程序对其进行翻译
解释程序也可以称为解释器,直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行
而编译程序(编译器)则将源程序翻译成目标语言程序,然后在计算机上运行目标程序.

解释器:翻译源程序时不生成独立的目标程序
解释程序和源程序要参与到程序的运行过程中
编译器:
翻译时将源程序翻译成独立保存的目标程序
机器上运行的是与源程序等价的目标程序
源程序和编译程序都不再参与目标程序的运行过程

程序设计语言的控制成分
顺序结构
选择结构
循环结构

编译方式:词法分析,语法分析,语义分析(前三个不能省略,顺序不可变),中间代码生成,代码优化(可省略),目标代码生成
解释方式:词法分析,语法分析,语义分析
编译器方式可以在词法分析,语法分析,语义分析阶段后直接生成目标代码

符号表
不断收集,记录和使用源程序中一些相关符号的类型和特征信息,并将器存入符号表中,记录源程序中各个字符的必要信息,以辅助语义的正确性检查和代码生成.

词法分析过程依据的是语言的词法规律
输入源程序,输出记号流

语法分析,确定语句结构是否有问题(经典问题,括号不匹配)
输入记号流,输出语法树
语法分析可以发现程序中的所有语法错误

输入:语法树(分析树)
语义分析阶段的主要作用是进行类型分析和检查
语义分析阶段不能发现程序中所有的语义错误
语义分析阶段可以发现静态语法错误
不能发现动态语义错误,动态语义错误运行时才能发现

目标代码生成阶段的工作与具体的机器密切相关
寄存器的分配处于目标代码生成阶段

中间代码与机器无关,最常用的中间代码,三地址代码,实现方式是四元式
常见的中间代码:后缀式,三地址码,三元式,四元式和树(图)等形式
中间代码与具体的机器无关,可以将不同的高级程序语言翻译成同一种中间代码
中间代码可以跨平台

因为与具体的机器无关,使用中间代码有利于进行与机器无关的优化处理和提高编译程序的可移植性

自动机,词法分析工具
中缀式
后缀式
都与树相关

标签:总结,代码生成,语法分析,每日,中间代码,语义,词法,源程序,大三
From: https://www.cnblogs.com/ewqewq/p/17707067.html

相关文章

  • Java基础知识学习笔记总结
    Java学习笔记总结java基础复习1、抽象类可以有构造器,可以有一个非抽象的父类2、垃圾回收机制回收的是堆里面的内存,栈里面的数据自动入栈自动出栈3、引用类型的数据在堆当中,内存中操作的只有栈,new关键字在堆里面分配一块内存4、java中是值传递5、String是不可变字符,即一旦分配......
  • lecode算法题 小总结
    .......1打印9x9乘法表#python版foriinrange(1,10):forkinrange(1,i+1):print(f'{i}X{k}\t',end='')print('\n')------------------#c版#include<stdio.h>intmain(){inti;......
  • 42-元组-生成器推导式创建元组-总结
           ......
  • LC每日一题 198.打家劫舍
    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内......
  • 嵌入式三级知识点总结第五章
    121. Linux只是操作系统的内核,通常说的Linux操作系统是指Linux:Linux发行版。122. ADS1.2开发工具进行地址分配由两种连接方式,一种是Scatter连接类型一种Simple连接方式。如果采用Scatter的话,需要提供一个scatter格式的配置文件。123. 获得图像的过程:扫描分色 取样 量化1......
  • 31-运算符总结-位操作符-优先级问题
             运行不了,因为变量未定义......
  • 详解Spring Boot如何实现每日给女朋友微信推送早安问候语和天气预报浪漫教程
    每天早上可以给指定的微信用户推送消息,经过公众号可以使用第三方接口丰富推送的消息内容百度天气api:添加天气信息推送天行数据api:添加美句、彩虹屁等语句推送通过后台计算纪念日推送......效果图技术栈点springboot实现后台微信测试账号的申请微信模版推送的配置对接百度天气api对......
  • 每日总结9.15
    早上,虽然有些困倦,但我还是迅速起床,洗漱完毕后,去食堂享用了一顿丰盛的早餐。吃完早餐后,我赶往教室,上午的课程紧凑而充实。老师们讲解内容深入浅出,帮助我们更好地理解知识点。我积极参与课堂互动,向老师提问,并与同学们进行讨论。这样的互动让我对学习更加感兴趣,也能够更好地掌握知识......
  • 2023.9.15——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午考试,下午帮助同学。我了解到的知识点:1.实现建民老师的HBase试题的插入部分;明日计划:1.完成我的任务......
  • 2023年9月15日每日随笔
        今天,进行了极限测试,写了四个多小时,后台写的差不多,前台写的也差不多,有个模板自己撰写,进行编写,但是最后没写出来,habase有bug,回来后重启以下就i解决了,下午睡了一觉,把以前前端的东西又写了写,后端原来用mybits进行得sql操作,改成自己写的dao包,虽然有bug,但是功能基本实现了,......