首页 > 编程语言 >软件设计师中级(程序语言)

软件设计师中级(程序语言)

时间:2024-09-12 09:54:50浏览次数:3  
标签:中级 编译 语言 面向对象 目标程序 程序语言 程序设计 设计师 源程序

目录

一、程序设计语言概述

1.低级语言与高级语言

2.程序设计语言发展概述

3.程序设计语言杂论

4.程序设计语言的基本成分

5.函数

二、汇编、编译、解释

1.汇编程序基本原理

2.编译程序基本原理

3.解释程序基本原理

4.编译与解释比较

三、文法分析

1.正规式

2.有限自动机

3.上下文无关文法

4.后缀表达式


一、程序设计语言概述

1.低级语言与高级语言

低级语言:机器语言和汇编语言

高级语言:Fortran、Java、C、C++、PHP、Python、Delphi、PASCAL等(即除了两种低级语言的其它语言)

2.程序设计语言发展概述

Fortran(Formula Translation) :第一个被广泛用来进行科学和工程计算的高级语言。由一个主程序和若干子程序组成。

ALGOL(ALGOrithmic Language) :诞生于晶体管计算机年代,主导了20世纪60年代程序语言的发展。Algol60引入许多新概念,如局部性概念、动态、递归等。

PASCAL :一种过程式、结构化程序设计语言,从ALGOL60衍生而来,曾在高校计算机软件教学在处于主导地位。

C :UNIX操作系统及其上的许多软件都是用C编写的,兼顾了高级语言和汇编语言的特点。允许程序员直接访问操作系统和底层硬件,因此在系统级应用和实时处理应用开发中成为主要语言。

C++ :在C的基础上于上世纪80年代发展起来的,于C兼容,但比C多了封装和抽象,增加的类机制使C++成为一种面向对象的程序设计语言。

C#(C Sharp):面向对象的、运行于.NET Framework的高级程序设计语言。

Java : (面向对象)初始用途是开发网络浏览器的小应用程序。

PHP :是一种在服务器端执行的、嵌入HTML文档的脚本语言。可以快速地执行动态网页。PHP支持几乎所有流行的数据库以及操作系统。

Python :面向对象的解释型程序设计语言(弱类型,无需进行变量/对象类型声明),可用于编写独立程序、快速脚本和复杂应有的原型。也是一种脚本语言,支持对操作系统的底层访问,还可用C、C++和Java扩展,因此可以用它开发任何类型的程序。

Delphi : 一种可视化开发工具,在Window环境下使用,其主要特征为基于窗体和面向对象的方法,采用面向对象的编程语言 Obiect Pascal 和基于构件的开发结构框架。

Visual Basic.NET是基于微软.NET Framework的面向对象的编程语言。用.NET语言开发的程序源代码需先编译成中间代码MSIL,然后通过.NET Framework 的通用语言(CIR)来执行。

LISP : 函数式编程语言

3.程序设计语言杂论

1)命令式和结构化

命令式Fortran , PASCAL , C
结构化C , PASCAL

2)面向对象

面向对象C++ ,C# ,Java , Smalltalk ,python

3)脚本语言是动态语言,以文本(如ASCII)保存,涉及函数与变量,只在被调用时进行编译或解释(主要为解释),常用来描述格式化和链接,编译效率不如编译型语言。

4.程序设计语言的基本成分

(包括数据、运算、控制和传输等)

数据

1)常量和变量

2)全局量和局部量(全局量的存储空间不改变,局部量的存储单元动态改变)C语言中全局变量在静态数据区,栈和堆存储动态数据。

3)数据类型(基本类型、用户定义类型、构造类型等)

控制

1)顺序结构

2)选择结构(if-else, switch)

3)循环结构 (while, do-while , for)

5.函数

1)函数定义

两部分:函数首部和函数体

(不允许函数嵌套定义)

2)函数声明

函数应该先声明后引用

3)函数调用

调用时实参和形参间交换信息的方法有值调用和引用调用

值调用:将实参的值传给形参,形参的改变不影响实参

引用调用:将实参的地址传给形参,形参的改变影响实参

二、汇编、编译、解释

1.汇编程序基本原理

1.1汇编语言

1)包含三类语句

指令语句:能被CPU直接识别并执行的;

伪指令语句:伪指令语句指示汇编程序在汇编源程序时完成某些工作,汇编后不产生机器代码;

宏指令语句:允许用户多次重复使用的程序段定义为宏;

1.2汇编程序一般需要两次扫描源程序才能完成翻译操作

第一次扫描:定义符号的值并创建一个符号表ST

第二次扫描:产生目标程序,除了使用ST还需使用机器指令表MOT2。将可执行汇编语句翻译成对应二进制代码机器指令。

2.编译程序基本原理

编译过程

1)词法分析:将源程序看成一个多行字符串,逐个字符扫描,识别一个个”单词“符号。输出记号流。

2)语法分析:将单词符号序列分解成各类语法单位,如表达式、语句和程序等。括号匹配、单词拼写、标点符号错、表达式确实操作数等均为语法分析。

3)语义分析:静态语义检查,只有语法和语义都正确的源程序才能翻译成正确的目标代码。

4)中间代码生成:一种简单且含义明确的记号系统,常用三地址码,其实现方式常采用四元式。中间代码与具体机器无关,使用中间代码可以提高编译程序的可移植性,有利于进行优化处理

5)代码优化

6)目标代码生成:将中间代码变换成特定机器上的绝对指令代码、可重定位指令代码或汇编指令代码,这个阶段与机器密切相关。

(中间代码生成和代码优化不是必须的)

3.解释程序基本原理

如图所示三种实现方式

1)解释程序不产生源程序的目标程序(与编译程序的主要区别)

2)不一定有中间代码(A路径)

3)解释脚本语言,如PHP,Python,Js

4.编译与解释比较

编译解释
效率效率更高需要反复扫描源程序,效率较低
灵活性由于需反复检查源程序,所以比编译方式更灵活
可移植性可以可以
运行情况机器上运行的是与源程序等价的目标程序,源程序和目标程序都不再参与目标程序的执行过程解释程序和源程序要参与到程序的运行过程中,运行程序的控制权在解释程序
目标程序将源程序翻译成独立的目标程序不产生目标程序
词法分析、语法分析、语义分析不可省略不可省略
中间代码生成和代码优化可省可省

三、文法分析

1.正规式

2.有限自动机

1)词法分析的一个工具,能正确地识别正规集

2)一个圈的是初态,两个圈的是终态

3)对于字符串1100 最终停留在q0所以不合法,对于字符串0101最终停留在q1所以合法 

确定的有限自动机(DFA):对每一个状态来说识别字符后转移的状态是唯一的

如下图,对每一个0/1只有唯一转移路径

不确定的有限自动机(NFA):对每一个状态来说识别字符后转移的状态是不唯一的

如下图,S0处对于1有两种转移路径

分析下图

对于字符串aab,q0->q1->q0->q1 不在终态,所以不合法

\varepsilon:空      无条件转移

3.上下文无关文法

如下图范例(规则题目会给,不用记):

4.后缀表达式

优先级:1、(  )2、 ×/÷   3、+/-

1)中缀 ——>后缀

变换规则: a?b -> ab?

例如:

1-2×(3+4)/5

第一步:1-2×34+/5(接下来将34+看成一个整体)

第二步:1-2×34+5/   (×和/优先级相同,优先级相同,从右往左)

第三步:1-234+5/×

最后:1234+5/×- 得到后缀表达式

2)后缀 ——>中缀

1234+5/×-

利用栈,从左往右扫描

数字直接入栈,遇到符号出栈

5.其他

语法分析方法根据语法树的方向可分为自底向上和自顶向下两类

自底向上:算符优先分析法、LR分析法

自顶向下:递归下降分析法、预测分析法

标签:中级,编译,语言,面向对象,目标程序,程序语言,程序设计,设计师,源程序
From: https://blog.csdn.net/2401_83540407/article/details/141989496

相关文章

  • AE2024安装不求人,详细图文教程带你轻松搞定,设计师加油包!
    #AE2024安装不求人,详细图文教程带你轻松搞定,设计师加油包!AdobeAfterEffects(简称AE)是一款强大的视觉效果和动态图形设计软件,广泛应用于电影、电视、广告等领域。随着AE2024的发布,许多设计师都迫不及待地想要体验新版本带来的新功能和改进。本文将为你提供一份详细的AE2024安装教......
  • AE2024新版安装教程-设计师的狂欢节!
    AdobeAfterEffects(简称AE)一直是设计师和动画师们的心头好,其强大的视觉效果和动态图形处理能力让无数创意得以实现。近日,Adobe公司正式发布了AE2024的最新版本,带来了诸多令人兴奋的新功能和改进。本文将为你详细介绍AE2024的新特性,并提供保姆级安装教程,同时分享不限速的资源下载链......
  • 中级 Java 软件工程师会遇到的事情
      计算机编程设计是一种工程学科。工程是依靠科学和时间实践才能有的经验。工程偏向的是 工程师的动手能力。科学是引导方向。C语言程序开发语言是一种软件思想知识普及的划时 代的变革。大学中学习过程序设计的学生,对于assembly  汇编,Basical  程序设计等都是十 分......
  • 【系统架构设计师-2024年真题】案例分析-答案及详解
    更多内容请见:备考系统架构设计师-核心总结索引文章目录【材料1】(软件架构设计与评估)问题1问题2问题3【材料2】(系统设计与建模)问题1问题2问题3问题4【材料3】(嵌入式)问题1问题2问题3【材料4】(数据库缓存)问题1问题2问题3【材料5】(W......
  • 番外篇:软件设计师の备考经验帖及报考指南
    ✨博客主页:https://blog.csdn.net/m0_63815035?type=blog......
  • 多媒体应用设计师备考考点讲解(三):多媒体内容的编码与解码技术
    #多媒体应用设计师备考考点讲解(三):多媒体内容的编码与解码技术引言在现代多媒体应用中,编码与解码技术是至关重要的环节。无论是视频、音频还是图像,都需要通过编码技术将其转换为适合存储和传输的格式,而在接收端则需要通过解码技术将其还原为原始内容。本文将深入探讨多媒体内容的编......
  • Ascend C算子开发(中级)—— 编写Sinh算子
    AscendC算子开发(中级)——编写Sinh算子文章目录AscendC算子开发(中级)——编写Sinh算子准备工作香橙派与PC连接Add算子调用体验Sinh算子开发(AscendC算子开发中级认证考试内容)准备工作一块香橙派AIpro开发板,一根Type-c口的电源线,一根网线,一个网线转接器,一台......
  • AE 2024安装包下载与安装:面向游戏设计师的特别教程
    AE 2024安装包下载与安装:面向游戏设计师的特别教程AE2024安装包下载与安装:面向游戏设计师的特别教程AdobeAfterEffects(简称AE)是一款强大的视觉效果和动态图形设计软件,广泛应用于电影、电视、广告和游戏设计等领域。对于游戏设计师来说,AE2024提供了丰富的工具和功能,帮助他们创......
  • 多媒体应用设计师备考考点讲解(二):多媒体系统架构设计
    多媒体应用设计师备考考点讲解(二):多媒体系统架构设计在多媒体应用设计中,系统架构是核心内容之一。一个合理的多媒体系统架构能够保证数据的高效处理与传输,同时为开发提供灵活的扩展性与维护性。本篇文章将详细讲解多媒体系统架构的设计原理,涉及多媒体数据流、系统分层结构、客户端/......
  • 多媒体应用设计师备考考点讲解(一):多媒体技术基础
    多媒体应用设计师备考考点讲解(一):多媒体技术基础在准备多媒体应用设计师的软考时,理解多媒体技术基础是非常关键的。这篇文章将详细讲解多媒体技术的基本概念和原理,包括多媒体的定义、常见的多媒体元素、数据表示方式、压缩技术以及应用场景。文章还将结合实际的代码示例,帮助读者理解......