【软件设计师笔记】程序语言设计考点

【考证须知】IT行业高含金量的证书(传送门)💖 

【软件设计师笔记】计算机系统基础知识考点(传送门)💖

【软件设计师笔记】操作系统考点(传送门)💖

🐓 编程语言之间的翻译形式

汇编

高级程序不能直接在计算机上执行,如果需要执行需要一个汇编程序将其翻译成对应的目标程序后才能执行。

解释

解释程序也被称为解释器,是直接解释执行源程序(高级程序),或者将源程序翻译成魔种的中间代码后进行执行

汇编(编译)与解释的区别

在编译方式下,机器上执行的是与源程序等价的目标程序,源程序和编译程序都不在参与目标程序的执行过程。(会产生独立的目标程序)

在解释方式下,解释程序和源程序需要参与到程序的运行过程中,运行程序的控制权在解释程序中(不会生成独立的目标程序)

 🐓 程序设计语言的定义

语法

程序设计语言的基本符号组成程序中的各个语法规则

语义

程序设计语言按照语法规则构成的各个语法成分的含义,可分为静态语义和动态语义

静态语义:编译时确定的语法成分的含义

动态语义:运行时刻才会确定的语法含义

语用

构成语言的各个记号和使用者的关系,涉及符号来源,使用和影响

 🐓 程序语言的分类

命令式程序设计语言

FORTRAN

PORTRAN是“Partial ORdinate TRANsfer”的缩写,它是一种专门为解决偏微分方程而设计的编程语言。它使用了一种基于有限差分的数值方法来解偏微分方程,通过将偏微分方程离散化为代数方程,可以在计算机上模拟和求解这些方程。

PORTRAN语言的特点

1.专门用于解决偏微分方程,特别是偏微分代数方程。

2.使用有限差分法进行数值计算,适合解决大规模问题。

3.支持一维和多维问题的模拟和求解。

4.可以使用FORTRAN编译器进行编译和运行。

5.提供了一些内置函数和子程序,方便用户进行编程和计算。

PORTRAN语言的应用领域

1.流体动力学:流体动力学是PORTRAN语言的一个重要应用领域。通过使用PORTRAN语言,可以模拟和分析流体流动、湍流、燃烧等问题,为航空航天、能源、环保等领域提供重要的技术支持。

2.热力学:热力学是另一个重要的应用领域。PORTRAN语言可以用于模拟和分析传热、相变、热传导等问题,为能源、化工、材料科学等领域提供帮助。

3.化学反应动力学:化学反应动力学是PORTRAN语言的又一重要应用领域。通过使用PORTRAN语言,可以模拟和分析化学反应过程、化学反应速率、化学反应机理等问题,为化学工程、药物合成等领域提供支持。

4.材料科学:材料科学是PORTRAN语言的一个重要应用领域。通过使用PORTRAN语言,可以模拟和分析材料的性能、结构、相变等问题,为材料制备、材料性能优化等领域提供帮助。

5.生物学和医学:PORTRAN语言也可以应用于生物学和医学领域。例如,可以模拟和分析生物系统的动力学行为、药物在体内的分布和代谢等问题,为生物学和医学研究提供重要的技术支持。

PASCAL

Pascal是一种高级编程语言,由法国计算机科学家尼古拉斯·沃斯(Niklaus Wirth)在1960年代设计。它被广泛用于教学和科研领域,成为一种经典的编程语言。

Pascal语言的特点

1.结构化编程:Pascal语言强调程序的结构化和模块化,支持使用函数和过程来实现程序的功能,使得程序更加易于理解和维护。

2.数据类型丰富:Pascal语言提供了丰富的数据类型,如整数、浮点数、布尔值、字符串、数组、记录和文件等,支持对数据的各种操作和操作符。

3.错误处理:Pascal语言提供了异常处理机制,支持使用try-except语句来捕获和处理运行时错误。

4.语法严格:Pascal语言的语法规则非常严格,要求程序员必须严格遵守语法规范,有助于提高程序的可读性和可维护性。

5.易于学习:Pascal语言的语法相对简单,易于学习,适合初学者使用。

Pascal语言的应用领域

1.教学和科研:由于其结构化和语法简单易学的特点,Pascal语言常被用于计算机科学教育和研究领域。

2.系统软件开发:Pascal语言曾被用于开发操作系统和系统软件,如Windows 3.0之前的版本。

3.应用软件开发:Pascal语言也可以用于开发各种应用软件,如数据库管理系统、编译器和编辑器等。

4.游戏开发:Pascal语言在游戏开发领域也有一定的应用,特别是在一些小型游戏开发中

C语言

C语言的特点:

1.语法简单,功能强大:C语言具有简洁的语法规则,使得程序易于编写和理解。同时,它也具有强大的功能,可以用来开发各种应用程序和系统软件。

2.灵活性和可移植性:C语言可以在不同的计算机平台上运行,而且它的程序可以被编译和链接,使其更加高效。这使得C语言具有很好的灵活性和可移植性。

3.高效的目标代码:C语言的目标代码执行效率高,生成的代码通常比其他高级语言的代码要短小、紧凑,运行速度快。

4.面向过程的程序设计语言:C语言是一种面向过程的程序设计语言,它支持模块化程序设计,可以把一个复杂的问题分解为多个简单的子问题,便于开发和管理。

5.数据类型丰富:C语言提供了丰富的数据类型,如基本数据类型、结构体、联合体、枚举类型等,这使得程序能够处理各种复杂的数据结构。

6.运算符丰富:C语言的运算符非常丰富,包括算术运算符、关系运算符、逻辑运算符、位运算符等,这使得程序能够进行各种复杂的运算操作。

7.代码具有良好的可读性和可维护性:C语言的语法规则严格,代码具有良好的可读性和可维护性。这使得C语言编写的程序易于调试、测试和修改。

C语言的应用领域

1.操作系统开发:C语言是操作系统开发的主要语言之一,如Linux操作系统的源代码就是用C语言编写的。

2.嵌入式系统开发:C语言广泛应用于嵌入式系统的开发,如智能家居、汽车电子等领域。

3.游戏开发:C语言在游戏开发中也有广泛应用,如《魔兽世界》、《CS》等游戏的底层引擎就是用C语言编写的。

4.网络编程:C语言在网络编程方面也有广泛应用,如网络协议栈、网络通信协议的实现等。

5.系统软件开发:C语言可以用于开发各种系统软件,如数据库管理系统、编译器等。

6.科学计算:C语言在科学计算领域也有广泛应用,如数学计算、物理模拟等。

7.其他领域:C语言还可以应用于其他领域,如图形图像处理、数据加密解密等。

面向对象的程序设计语言

C++

C++是一种面向对象的编程语言,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

C++的特点

1.高效:C++生成的可执行代码运行速度很快,且占用内存较小。

2.静态类型:在编译期间即可检查变量的类型和错误。

3.可移植性:C++标准化,并且有跨平台的实现。

4.面向对象:C++支持封装、继承和多态等面向对象编程的特性。

5.高效内存管理:C++提供了智能指针等工具,帮助开发者更安全、高效地管理内存。

6.语法灵活:C++的语法较为灵活,但同时也具有一定的复杂性,需要开发者具备一定的经验和技能。

C++的应用领域

1.游戏开发:由于C++具有高效的执行速度和较小的内存占用,因此它是游戏开发中最常用的编程语言之一。

2.系统级编程:C++可以用来编写操作系统、驱动程序、网络协议等底层软件。

3.嵌入式设备:C++在嵌入式设备上的应用非常广泛,包括自动控制系统、机器人、智能家居等。

4.科学计算:C++的运行速度快,因此它可以用于大型数据处理和科学计算领域。

5.大型桌面应用程序:如Google Chrome和Microsoft Office等。

6.大型网站的后台

7.编译器和数据库系统

8.其他领域:C++还可以应用于其他领域,如人工智能、机器学习、图像处理等。

Java

Java是一种广泛使用的、面向对象的编程语言,具有简单性、跨平台性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。

Java的特点

1.跨平台性:Java程序可以在任何支持Java虚拟机(JVM)的平台上运行,理论上一个Java程序可以在任何支持JVM的平台上运行。

2.面向对象:Java是一种完全基于面向对象的编程语言,支持类、继承、封装和多态等面向对象概念,这有助于提高代码的复用性和可维护性。

3.自动内存管理:Java的垃圾回收器可以自动管理程序的内存使用,降低了程序的出错率。

4.安全性:Java具有强大的安全机制,可以防止代码注入攻击、缓冲区溢出等安全问题,有效提高了程序的安全性。

5.多线程:Java内置对多线程编程的支持,这使得它可以轻松地利用多核处理器和分布式计算资源。

6.简单易学:Java的语法清晰、简洁,易于学习,并且拥有丰富的API和标准库,支持快速开发、测试和部署。

Java的应用领域

1.Web开发:Java的强大功能和广泛的支持使得它成为Web开发的重要语言,包括Web应用程序开发、Web服务和RESTful API开发等。

2.桌面应用程序:Java可以用于开发跨平台的桌面应用程序,如办公套件、图像处理软件等。

3.分布式系统:Java的分布式特性使得它可以用于开发分布式系统,如分布式数据库和分布式计算等。

4.嵌入式系统:Java可以用于开发嵌入式系统,如智能家居设备、智能手表等。

5.游戏开发:Java的跨平台性和强大的图形渲染能力使得它可以用于游戏开发,如Android平台上的许多游戏就是用Java开发的。

6.企业级应用:Java在企业级应用开发中也有广泛应用,如ERP、CRM等系统。

7.Android开发:Android操作系统基于Java,因此Java是Android应用程序开发的首选语言。

8.大数据处理:Java在大数据处理领域也有广泛应用,如Hadoop、Spark等大数据框架就是用Java开发的。

smalltalk

Smalltalk是一种面向对象的程序设计语言,被认为是具有代表性和运用最广泛的面向对象编程语言之一

Smalltalk的特点

1.一切都是对象:在Smalltalk中,所有的东西都是对象,或者应该被当作对象处理。例如,数字或字符串都是对象。

2.消息传递:Smalltalk中的对象通过发送和接收消息来交互。每个对象都有一组可以接收的消息,这些消息决定了对象的功能。

3.动态类型:Smalltalk中的变量和对象的类型可以在运行时改变。这意味着你可以在程序运行时改变变量的类型或对象的消息。

4.递归:递归是Smalltalk中非常常见的概念,它是指一个方法直接或间接地调用自己。递归允许你以一种更简单、更直观的方式编写处理复杂问题的代码。

5.直接内存访问:Smalltalk提供了直接访问和操作内存的能力,这使得它能更有效地处理内存和性能问题。

Smalltalk的应用领域

1.教育和教学:由于Smalltalk的直观性和易学性,它被广泛用于教授编程和软件开发的基本概念。许多教育机构和大学使用Smalltalk作为入门语言。

2.软件开发:由于Smalltalk的强大功能和灵活性,它被广泛应用于软件开发中,包括GUI开发、数据库访问、网络编程等。

3.系统集成:由于Smalltalk具有直接访问和操作内存的能力,它被用于开发系统集成软件,如中间件和设备驱动程序等。

4.游戏开发:Smalltalk也被用于开发游戏,特别是那些需要复杂图形和交互性的游戏。

5.科学计算:Smalltalk的动态类型和强大的数学运算能力使其在科学计算领域非常有用。它被用于开发各种科学计算软件,如物理模拟和化学计算等。

逻辑型程序设计语言

PROLOG

Prolog(Programming in Logic)是一种建立在逻辑学基础上的计算机程序设计语言,它最初被应用于自然语言处理领域

Prolog的特点

1.超高级语言:Prolog是一种声明性语言,它专注于描述程序的目标和规则,而不是具体实现细节。

2.说明性语言:对于某些问题,Prolog更关注告诉计算机应该做什么,而不是如何做。

3.表达力强:Prolog的强大表达能力使其适合表示人类的思维和推理规则。

4.坚实的数学基础:Prolog基于一阶谓词逻辑,这种逻辑形式也被称为“一阶谓词演算”。

5.自动回溯:Prolog使用了一种基于逆向规则的演绎推理技术,并支持自动回溯功能。

6.支持递归调用:Prolog允许递归调用,这使得它能处理复杂的问题和关系。

Prolog的应用领域

1.超高级语言:Prolog是一种声明性语言,它专注于描述程序的目标和规则,而不是具体实现细节。

2.说明性语言:对于某些问题,Prolog更关注告诉计算机应该做什么,而不是如何做。

3.表达力强:Prolog的强大表达能力使其适合表示人类的思维和推理规则。

4.坚实的数学基础:Prolog基于一阶谓词逻辑,这种逻辑形式也被称为“一阶谓词演算”。

5.自动回溯:Prolog使用了一种基于逆向规则的演绎推理技术,并支持自动回溯功能。

6.支持递归调用:Prolog允许递归调用,这使得它能处理复杂的问题和关系。

 🐓 程序语言的基本成分

数据

常量和变量

按照程序运行时数据的值是否可以改变,可以将数据分为常量和变量

全局量和局部量

数据可以按在程序代码中的作用范围可分为全局量和局部量

数据类型

基本数据类型,特殊类型,用户定义类型,构造类型,指针类型,抽象数据类型

运算

算数运算,关系运算,逻辑运算

控制

顺序结构,选择结构,循环结构

传输

语言允许的数据传输方式,赋值处理,数据输入和输出等

 🐓 汇编语言源程序

指令语句

又称机器指令语句,将其汇编后能产生响应的机器代码,在这些代码能被CPU直接识别并执行响应的操作,比如ADD,SUB和AND等,书写指令语句时必须遵循指令的格式要求

包括传送指令,算术运算指令,逻辑运算指令,移位指令,转移指令和处理机控制指令等类型

伪指令语句

指示汇编程序在汇编源程序时完成某些工作

伪指令语句和指令语句的区别:伪指令语句经过汇编后不产生代码且必须在汇编时完成,指令语句会产生代码,且必须在程序运行时完成

宏指令语句

允许用户将多次重复使用的程序段定义为宏。

宏的定义必须按照相应的规定进行执行

 🐓 汇编程序

执行过程:源程序--词法分析--语法分析--语义分析--中间代码生成--代码优化--目标代码生成--目标代码

 🐓 解释程序

分析部分

词法分析,语法分析,语义分析--中间代码

解释部分

解释执行--中间代码

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

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

相关文章

yolov8训练自己的关键点检测模型

参考: https://blog.csdn.net/weixin_38807927/article/details/135036450 标注数据集 安装labelme pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple如果报错 $ labelme 2024-01-31 03:16:20,636 [INFO ] __init__:get_config:67- Loading …

YOLOv5改进系列(29)——添加DilateFormer(MSDA)注意力机制(中科院一区顶刊|即插即用的多尺度全局注意力机制)

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制

面试宝典之深谈JVM

面试宝典之深谈JVM 1.为什么需要JVM,不要JVM可以吗? 1.JVM可以帮助我们屏蔽底层的操作系统 一次编译,到处运行 2.JVM可以运行Class文件 2.JDK,JRE以及JVM的关系 3.我们的编译器到底干了什么事? 仅仅是将我们的 .ja…

深入理解 Golang 的 crypto/elliptic:椭圆曲线密码学的实践指南

深入理解 Golang 的 crypto/elliptic:椭圆曲线密码学的实践指南 引言crypto/elliptic 库概览基本使用教程高级应用案例性能与安全考量结论 引言 在当今数字时代,数据安全和加密技术成为了信息技术领域的重中之重。特别是在网络通信和数据存储领域&#…

如何系统的自学Python?通义千问、讯飞星火、文心一言及ChatGPT的回答

如何系统的自学Python?来看看通义千问、讯飞星火、文心一言及ChatGPT的回答. 第一个是马老师的通义千问 系统地自学Python是一个循序渐进的过程,从基础语法到实践项目,再到专业领域的深入学习。下面是一个详细的步骤指南: 了解Py…

控制台npm start终止不了?

控制台npm start终止不了? 在开发的过程中我遇到了这样的问题,想结束控制台3002端口运行,但是ControlC不起作用,不管我敲多少遍,依旧没有任何动静: 再次启动的时候它又会自动启动3003端口,300…

Kotlin 协程:深入理解 ‘async { }‘

Kotlin 协程:深入理解 ‘async { }’ Kotlin 协程是一种强大的异步编程工具,它提供了一种简洁、易读的方式来处理并发和异步操作。在 Kotlin 协程库中,async {} 是一个关键的函数,它允许我们启动一个新的协程,并返回一…

【大厂AI课学习笔记】1.4 算法的进步(2)

关于感知器的兴衰。 MORE: 感知器的兴衰 一、感知器的发明与初期振动 在人工智能的历史长河中,感知器(Perceptron)无疑是一个里程碑式的存在。它最初由心理学家Frank Rosenblatt在1950年代提出,并在随后的几年中得到…

【数字电子技术课程设计】多功能数字电子钟的设计

目录 摘要 1 设计任务要求 2 设计方案及论证 2.1 任务分析 2.1.1 晶体振荡器电路 2.1.2 分频器电路 2.1.3 时间计数器电路 2.1.4 译码驱动电路 2.1.5 校时电路 2.1.6 整点报时/闹钟电路 2.2 方案比较 2.3 系统结构设计 2.4 具体电路设计 3 电路仿真测试及结…

京东物流基于 StarRocks 的数据分析平台建设

作者:京东物流 数据专家 刘敬斌 小编导读: 京东集团 2007 年开始自建物流,2017 年 4 月正式成立京东物流集团,截至目前,京东物流已经构建了一套全面的智能物流系统,实现服务自动化、运营数字化及决策智能化…

开源编辑器:ONLYOFFICE文档又更新了!

办公软件 ONLYOFFICE文档最新版本 8.0 现已发布:PDF 表单、RTL、单变量求解、图表向导、插件界面设计等更新。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一套功能强大的文档编辑器,支持编辑处理文本文档、电子表格、演示文稿、可填写的表单、PDF&#…

Java基础学习:System类和Static方法的实际使用

一、System类 1.在程序开发中,我们需要对这个运行的结果进行检验跟我们预判的结果是否一致,就会用到打印结果在控制台中显示出来使用到了System类。System类定义了一些和系统相关的属性和方法,它的属性和方法都是属于静态的,想使用…

数字孪生 三维建模方式以及细节步骤流程

对于数字孪生这个概念,三维建模不同行业认知都不尽相同。有的行业认为数字孪生重点在于建模,有的行业认为在于物联感知,还有部分认为是虚拟仿真。今天重点从建模角度和大家谈谈数字孪生技术常用的三维建模方式以及精细度分级。 数字孪生平台…

钉钉群机器人-发送群消息

1、钉钉群创建机器人 添加完成后,要记住 Webhook 路径; 2、机器人接入文档网址 自定义机器人接入 - 钉钉开放平台 3、JAVA代码 import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.re…

【靶场实战】Pikachu靶场XSS跨站脚本关卡详解

Nx01 系统介绍 Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意。 Nx02 XSS跨站脚本概述 Cross-Site Scripting 简称为“CSS”&#xff…

聊聊ClickHouse MergeTree引擎的固定/自适应索引粒度

前言 我们在刚开始学习ClickHouse的MergeTree引擎时,就会发现建表语句的末尾总会有SETTINGS index_granularity 8192这句话(其实不写也可以),表示索引粒度为8192。在每个data part中,索引粒度参数的含义有二&#xf…

Flink 流式读取 Debezium CDC 数据写入 Hudi 表无法处理 -D / Delete 消息

问题场景是:使用 Kafka Connect 的 Debezium MySQL Source Connector 将 MySQL 的 CDC 数据 (Avro 格式)接入到 Kafka 之后,通过 Flink 读取并解析这些 CDC 数据,然后以流式方式写入到 Hudi 表中,测试中发现…

Linux mount

挂载移动硬盘 1、通过 命令 fdisk -l 查看移动硬盘 2、创建 挂载点及文件 mkdir zen 3、mount -t ntfs /dev/sdb1 zen 报错:mount: unknown filesystem type ‘ntfs’ 需要安装ntfs-3g 如下才用编译安装方法: wget https://tuxera.com/opensource/ntf…

基于Java SSM框架实现智能快递分拣系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现智能快递分拣系统演示 JAVA简介 Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,JSP(java serv…

解读命令docker-compose up -d

docker-compose up -d 命令是用来启动Docker Compose项目中定义的服务的,并且让这些服务在后台以守护进程(daemon)模式运行。 详细解读如下: docker-compose: 这是Docker官方提供的用于定义和管理多容器应用的工具,它…