热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

******七******、软设笔记【程序语言设计】基本概念、编译程序

一、程序设计语言基本概念1.低级语言和高级语言(1)低级语言机器语言和汇编语言称为低级语言。*机器语言指0、1组成的机器指令序列*汇编语言指用符号表示指
一、程序设计语言基本概念


1.低级语言和高级语言


(1)低级语言


机器语言和汇编语言称为低级语言。


*机器语言指0、1组成的机器指令序列


*汇编语言指用符号表示指令的语言


MOV AX,2


MOV BX,3


ADD AX,BX






(2)高级语言


高级语言是从人类的逻辑思维角度出发、面向各类应用的程序语言,抽象程度大大提高,需要编译成特定机器上的目标代码才能执行。这类语言与人们使用的自然语言比较接近,大大提高了程序设计的效率。






2.编译程序和解释程序


高级语言或者汇编语言编写的程序称为源程序,源程序不能直接在计算机上执行。


*如果源程序是汇编语言编写的,则需要一个称为汇编程序的翻译程序将其翻译成目标程序,然后才能执行,


*如果源程序是为高级语言时,这个翻译程序称为编译程序


*按源程序中语句的执行顺序,逐条翻译并立即执行相关功能的处理程序,称为解释程序。






程序的执行方式:


1.编写执行:按编译方式在计算机上执行用高级语言编写的程序,需要经过两个阶段:


编译阶段,把源程序翻译成目标程序;


运行阶段,真正执行此目标程序。


*优点:执行效率高、占用资源小、


缺点:兼容性差。






2.解析执行:源程序的每个语句一经解释就立即执行。


*优点:可移植性较好,开发速度较快、与用户通信方便。


*缺点:效率低。









二、编译程序:


编译程序的工作过程可以分成6个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。






(1)词法分析阶段:


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


一个程序语言的基本语法符号分为五类:关键字、标识符、常量、运算符、界符等


词法分析器所输出单词符号常常表示成如下的二元式:


(单词种别,单词符号的属性值)


描述词法规则通常用;正规式和有限自动机






1.状态转换图


状态转换图是状态有限的有向图,用圆圈表示结点状态,结点之间有向边代表状态转换,有向边上可标记字符,表示前一状态接受某一个字符之后的状态转移。






状态转换图的功能


*用于识别一定字符串






状态转化图的要求


*状态(即结点)个数有限


*至少一个初始状态,若干终止状态


*每条边上标有字符(也可以是控字符)






3.正规表达式与正规集(定义和运算)


状态转换图可以构造词法分析程序,但属于非形式化描述


正规表达式(简称正规式)是词法分析的形式化表示方法。所谓形式化的方法,是指用一整套带有严格规定的符号体系来描述问题的方法。


优点:更加清晰和准确























推荐阅读
  • C语言是计算机科学和编程领域的基石,许多初学者在学习过程中会感到困惑。本文将详细介绍C语言的基本概念、关键语法和实用示例,帮助你快速上手C语言。 ... [详细]
  • Linux 实时网络流量监控工具 iftop 使用指南
    iftop 是一款强大的实时网络流量监控工具,通过安装和配置该工具,用户可以实时监控网络接口的流量情况。本文将详细介绍 iftop 的安装步骤、常用参数及操作命令。 ... [详细]
  • 从零开始编译Linux系统:第16章 全新起点
    本章将详细介绍如何从零开始编译一套完整的Linux系统,涵盖关键组件如glibc库的介绍及其重要性。通过本文,读者将了解从源代码构建Linux系统的全过程。 ... [详细]
  • 本文介绍了如何在Linux和Windows环境中使用C语言中的beep函数来生成不同频率的声音,并提供了详细的代码示例和解释。 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • 深入理解Java多线程与并发机制
    本文探讨了Java多线程和并发机制的核心概念,包括多线程类的分类、执行器框架、并发容器及控制工具。通过详细解析这些组件,帮助开发者更好地理解和应用多线程技术。 ... [详细]
  • 2023年最新指南:如何在PHP中屏蔽警告和错误
    本文详细介绍了如何在PHP中屏蔽警告和错误,包括多种方法和最佳实践,帮助开发者提升代码质量和安全性。 ... [详细]
  • 本文为初学者提供了一条清晰的学习路线,帮助他们逐步成长为优秀的Web开发人员。通过十个关键步骤,涵盖从基础到高级的各个方面,确保每位学习者都能找到适合自己的学习方向。 ... [详细]
  • 本文分享了在阅读阿里巴巴Java编码规范1.4版本后的一些心得体会,探讨了如何通过规范提升代码质量和可读性。 ... [详细]
  • Angular 7 实战案例解析
    本文通过具体的实战案例,深入分析了 Angular 7 的核心特性和应用场景,帮助读者更好地理解和掌握这一前端框架。 ... [详细]
  • Java 初次编程练习
    任务要求:设计一个类,包含若干基本属性和至少两个方法(可以从日常生活场景中提取)。在类中实现两个具有不同参数的构造方法。另外,设计一个包含 main 方法的类,用于测试和应用上述类。此作业需编写并调试通过。 ... [详细]
  • C#中使用Dotfuscator Pro进行代码混淆
    由于Visual Studio自带的混淆工具功能有限,本文将介绍如何使用Dotfuscator Pro进行更高级的代码混淆。包括设置字符串加密、添加可执行文件和动态链接库、调整混淆选项等步骤。 ... [详细]
author-avatar
somnus
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有