1. 动态语义错误
只有运行时才能表现出来的错误,属于动态语义错误。例如:除数为0;无限循环;
2. 软件开发过程各阶段需完成的任务
-
需求分析:确定软件要完成的功能及非功能性要求;
-
概要设计:将需求转化为软件的模块划分,确定模块之间的调用关系;
软件体系结构设计;逻辑数据结构设计;数据库设计;模块之间的接口设计
-
详细设计:将模块进行细化,得到详细的(模块内部的)数据结构和算法;
-
编码:根据详细设计进行代码的编写,得到可以运行的软件,并进行单元测试。
3. 结构化设计与面向对象设计
结构化设计和面向对象设计是两种不同的设计方法。
结构化设计根据系统的数据流图进行设计,模块体现为函数、过程及子程序;
面向对象设计基于面向对象的基本概念进行,模块体现为类、对象和构件等。
4. C/C++语言的处理过程
预处理-编译-链接(没有汇编过程)
5. C++语言支持
过程式程序设计、数据抽象程序设计、面向对象程序设计、泛型程序设计;
6. 动态语言和静态语言
-
静态语言:
-
编译时类型检查:在编译时进行类型检查,这意味着所有的类型错误在编译阶段就会被发现。
-
性能:通常来说,静态语言的程序运行速度更快,因为编译器可以优化代码。
-
编译过程:代码需要先编译成机器语言,然后才能运行。
-
代表语言:C、C++、Java、Go等。
-
-
动态语言:
-
运行时类型检查:类型检查在程序运行时进行,这意味着类型错误可能在运行时才被发现。
-
灵活性:动态语言通常更加灵活,允许在运行时改变对象的类型和结构。
-
解释执行:很多动态语言的代码是直接在解释器中运行的,不需要编译成机器语言。
-
代表语言:Python、Ruby、JavaScript、PHP等。
-
动态语言:指程序在运行时可以改变其结构,例如新的函数可以被引进、已有的函数可以被删除等在结构上的变化等。
事实上,脚本语言都是动态语言,而动态语言都是解释型语言,不管它们是否是面向对象的语言。
7. ipconfig命令
-
ipconfig/all:能为dns/wins服务器显示它已配置且所要使用的附加信息(如ip地址等),并且显示内置于本地网卡中的物理地址。
-
ipconfig/release:也只能在向dhcp服务器租用其ip地址的计算机上起作用。如果你输入ipconfig/release,那么所有接口的租用ip地址便重新交付给dhcp服务器。
-
对于/reset和/reload,ipconfig不支持这两个参数。
8. 文法的分类
0型文法:也称为短语结构文法和无限制文法。对产生式没有任何限制。产生式的左侧可以包含任意数量的符号(至少包含一个非终结符),右侧也可以包含任意数量的符号。
1型文法:也称为上下文有关文法。每个产生式的左侧必须至少包含一个非终结符,且左侧和右侧的符号数量必须相等或右侧的符号数量更多(除了特殊情况S→ε)。
2型文法:也称为上下文无关文法。每个产生式的左侧只有一个非终结符,右侧可以是任意数量的符号(包括空串)。程序设计语言的语法基本上全是这个文法。
3型文法:也称为正规文法。是限制最严格的文法类型。
两个月冲刺中级软件设计师,欢迎大家一起讨论交流,同时也希望各位小伙伴们指出错误,我这边及时修改。