高级编程¶
客观的¶
意识到传统的电脑是用来解决问题,并理解静态和动态类型语言之间的区别。
高级程序设计语言¶
标签“高层”应用到编程语言有点模糊,但大意是,语言抽象物理机器的细微差别和其架构开发人员。有不同程度的high-levelness,取决于该语言的特性。C语言,像住在low-to-medium-level一方面,因为他们提供更多的功能比组装但仍然非常密切相关的硬件。另一方面,语言(如Java、Python、c#和JavaScript住在高层结束,因为他们在完全不同的模式,甚至不再像他们执行的基于堆栈的计算。
高级语言可以包括功能,如:
- 自动内存管理的帮助下垃圾收集系统
- “对象”或其他实体的概念,包含结构化信息
- 类型系统(静态、动态或duck typing),知道一个实体提供什么功能,它支持的数据的结构
- 支持定义定制语法扩展(如自定义运营商)
- 抽象数据类型,比如数组、地图、列表和集,每个都有自己的规则和功能
- Boundary-checking防止系统在内存位置执行代码,超越一个实体的分配限制
- 支持多个线程,同时运行不同功能的不同部分处理器上
- 解释或即时(just - in - time, JIT)执行,它将代码转换为实时处理器的机器指令,允许一个代码库运行在任何处理器和操作系统,一个运行时环境
作为软件工程师,我们用这些特性的日常语言。虽然工具已经改变了,我们的工作仍然是基本一样的黎明古典电脑:我们编写代码来表达一些所需的功能,系统可以解释和执行,和我们所有的数据是最终表示为二进制数字。指令和数据的形式可能改变了计算机科学已经成熟,但这些根本真理仍然有效。我们可以从面向对象面向方面的范例,从功能性命令式风格,或强类型语言提供的语言。在一天结束的时候,我们知道我们将变量、数组、函数、评论,1 + 1永远等于2。经典计算机的基础支柱永远是相同的,无论语言。我们想让你欣赏你理所当然的在日常生活中作为一个软件工程师。
如果你没有很多软件的经验,这是一个好主意来浏览下面的材料,直到你感觉舒服回答知识检查的问题。Python和c#基本接触很有帮助探索的一些量子软件框架。
额外的材料¶
Stack Overflow回答教授诺曼·拉姆齐在意味着什么是静态类型语言
- 这提供了一个精确的“静态类型”的定义,它清除混乱周围一些相关术语。这也是一个很好的例子,计算机科学社区如何处理混乱的主题。
-
- 这个页面包含视频和互动教程的链接。关注“Hello world”教程了解基本语法。
-
- 注意价值和引用类型的区别。
知识检查¶
第一季度¶
下面的Python程序的输出是什么?
123456 |
|
答:6
B:8
C:;程序运行在一个无限循环
D:错误由于糟糕的语法/压痕
艾凡:由于没有错误if __name__ = =的__main__ '
声明
第二季¶
填写缺失的Python代码,以便下面的函数计算平均值的数字列表。
12345 |
|
第三季¶
算法的时间复杂度是什么实现Q2计算列表的数字意味着什么?给你的答案“大魔神”符号。
第四季度¶
假设你要猜一个数字1至15(包容),和每次想你告诉是否更高或更低。需要多少猜测之前你保证知道数量是什么吗?
Q5¶
下面是一个利用所有静态类型语言吗?(选择所有适用。)
答:编译程序提供一些保证类型安全
B:程序产生一个运行时错误时违反某种限制
C:任何类型很容易兑换其他类型
D:实施一致的风格,使代码更加可读
E:如果程序编译、逻辑错误是不可能的
Q6¶
下面的c#片段的输出是什么,假设这是一个可执行程序的一部分?
1234 |
|
迄今为止¶
类型的分类是什么员工
在c#如下定义吗?(选择所有适用。)
1234567891011 |
|
答:值类型
B:引用类型
C:文字值
D:泛型类型
艾凡:匿名类型