跳到内容

高级编程

客观的

意识到传统的电脑是用来解决问题,并理解静态和动态类型语言之间的区别。

高级程序设计语言

标签“高层”应用到编程语言有点模糊,但大意是,语言抽象物理机器的细微差别和其架构开发人员。有不同程度的high-levelness,取决于该语言的特性。C语言,像住在low-to-medium-level一方面,因为他们提供更多的功能比组装但仍然非常密切相关的硬件。另一方面,语言(如Java、Python、c#和JavaScript住在高层结束,因为他们在完全不同的模式,甚至不再像他们执行的基于堆栈的计算。

高级语言可以包括功能,如:

  • 自动内存管理的帮助下垃圾收集系统
  • “对象”或其他实体的概念,包含结构化信息
  • 类型系统(静态、动态或duck typing),知道一个实体提供什么功能,它支持的数据的结构
  • 支持定义定制语法扩展(如自定义运营商)
  • 抽象数据类型,比如数组、地图、列表和集,每个都有自己的规则和功能
  • Boundary-checking防止系统在内存位置执行代码,超越一个实体的分配限制
  • 支持多个线程,同时运行不同功能的不同部分处理器上
  • 解释或即时(just - in - time, JIT)执行,它将代码转换为实时处理器的机器指令,允许一个代码库运行在任何处理器和操作系统,一个运行时环境

作为软件工程师,我们用这些特性的日常语言。虽然工具已经改变了,我们的工作仍然是基本一样的黎明古典电脑:我们编写代码来表达一些所需的功能,系统可以解释和执行,和我们所有的数据是最终表示为二进制数字。指令和数据的形式可能改变了计算机科学已经成熟,但这些根本真理仍然有效。我们可以从面向对象面向方面的范例,从功能性命令式风格,或强类型语言提供的语言。在一天结束的时候,我们知道我们将变量、数组、函数、评论,1 + 1永远等于2。经典计算机的基础支柱永远是相同的,无论语言。我们想让你欣赏你理所当然的在日常生活中作为一个软件工程师。

如果你没有很多软件的经验,这是一个好主意来浏览下面的材料,直到你感觉舒服回答知识检查的问题。Python和c#基本接触很有帮助探索的一些量子软件框架。

额外的材料

知识检查

第一季度

下面的Python程序的输出是什么?

123456
def斐波那契(n):如果n<2:返回n其他的:返回斐波那契(n- - - - - -1)+斐波那契(n- - - - - -2)打印(斐波那契(6))

答:6

B:8

C:;程序运行在一个无限循环

D:错误由于糟糕的语法/压痕

艾凡:由于没有错误if __name__ = =的__main__ '声明

第二季

填写缺失的Python代码,以便下面的函数计算平均值的数字列表。

12345
def的意思是(num_list):=0全国矿工工会num_list:# ? ? ?返回/len(num_list)

第三季

算法的时间复杂度是什么实现Q2计算列表的数字意味着什么?给你的答案“大魔神”符号。

第四季度

假设你要猜一个数字1至15(包容),和每次想你告诉是否更高或更低。需要多少猜测之前你保证知道数量是什么吗?

Q5

下面是一个利用所有静态类型语言吗?(选择所有适用。)

答:编译程序提供一些保证类型安全

B:程序产生一个运行时错误时违反某种限制

C:任何类型很容易兑换其他类型

D:实施一致的风格,使代码更加可读

E:如果程序编译、逻辑错误是不可能的

Q6

下面的c#片段的输出是什么,假设这是一个可执行程序的一部分?

1234
字符c=“c”;int;=(int)c;/ / c int系统控制台WriteLine();

迄今为止

类型的分类是什么员工在c#如下定义吗?(选择所有适用。)

1234567891011
公共结构体员工{公共字符串的名字;公共intid;公共员工(字符串n,int){的名字=n;id=;}}

答:值类型

B:引用类型

C:文字值

D:泛型类型

艾凡:匿名类型


最后更新:2022年2月15日