图源:文心一言
编译原理习题整理~🥝🥝
作为初学者的我,这些习题主要用于自我巩固。由于是自学,答案难免有误,非常欢迎各位小伙伴指正与讨论!👏💡
- 第1版:自己的解题,与AI老师的判卷~🧩🧩
编辑:梅头脑🌸
审核:文心一言
题源:龙书《编译原理》 Alfre V.Aho 等著 赵建华 等译
📇目录
📇目录
🧵本篇参考答案
🧵练习1.3.1
🧩题目
🌰答题
🔚结语
🧵本篇参考答案
——
🧵练习1.3.1
🧩题目
指出下面的术语:
1)强制式的;2)声明式的;3)冯.诺依曼式的;4)面向对象的;
5)函数式的;6)第三代;7)第四代;8)脚本语言;
可以用于描述下面的哪些语言:
1)C;2)C++;3)Cobol;4)Fortran;5)JAVA;
6)Lisp;7)ML;8)Perl;9)Python;10)VB;
🌰答题
📇阿梅答题
首先,我只知道1)2)5)9)10),而且仅限于知道,5)和10)甚至都没用过,呃——
- 第一代语言是:机器语言;
- 第二代语言是:汇编语言;
- 第三代语言是:高级程序设计语言,那应该包括1)C;2)C++;3)Cobol;4)Fortran;5)JAVA;6)Lisp;9)Python;
- 第四代语言是:为特定应用程序设计的语言,如生成报告的NOMAD,用于数据库查询的SQL,和用于文本排版的Postscript;那应该包括为数学而生的7)ML语言;为文本处理而生的7)perl ;以及为图形开发而生的10)Visual Basic;
- 第五代语言是:基于逻辑和约束的语言,比如Prolog和OPS5.
- 强制式语言:程序中指明如何完成一个计算任务的语言,在我的理解应该第三代语言吧;
- 声明式语言:程序中指明要进行哪些计算的语言称为声明式语言,在我的理解应该第四代和第五代语言吧;
- 冯.诺依曼语言:1)C;4)Fortran;
- 面向对象语言:2)C++;5)JAVA;
- 脚本语言:具有高层次运算符的解释型语言,通常被用于把多个计算过程粘合在一起:8)Perl;9)Python;JavaScript;PHP;
就算是开卷也实在是编不下去了,就这样吧——
📇AI审核
AI回复详细版本:
您的回答中有些部分是不准确的,我将尝试纠正并提供更清晰的解释。首先,我们需要明确每个术语的含义,然后将其应用于给定的编程语言。
- 强制式语言(Imperative Language):这类语言明确地告诉计算机如何执行任务。大多数流行的编程语言,如C、C++、Java,都是强制式的。
- 声明式语言(Declarative Language):与强制式语言不同,声明式语言告诉计算机需要做什么,而不是如何做。SQL和Haskell是声明式语言的例子。
- 冯·诺依曼式的(Von Neumann Architecture Language):这并不是一个用于描述编程语言的术语。冯·诺依曼架构是指一种计算机硬件设计,其中程序和数据都存储在同一个内存中。但是,像Fortran和C这样的早期语言,在设计时考虑到了这种架构的特点。
- 面向对象的(Object-Oriented):面向对象的语言支持类和对象的概念,如C++、Java和Python。
- 函数式的(Functional):函数式语言强调函数的计算而不是状态的变化。Lisp和ML是函数式语言的例子。
- 第三代语言(3GL):这是高级编程语言的另一个名称,包括C、C++、Cobol、Fortran、Java等。
- 第四代语言(4GL):这些语言是为特定应用而设计的,通常更易于使用。您提到的NOMAD、SQL和Postscript并不直接对应于编程语言,而是特定领域的工具或语言。不过,可以说4GL的目的是让非程序员也能更容易地开发应用程序。您列出的ML、Perl和VB并不完全符合这个分类。
- 脚本语言(Scripting Language):脚本语言通常用于自动化任务,它们是解释执行的,不需要预先编译。Perl和Python都是脚本语言的例子。
现在,让我们将上述术语应用于给定的编程语言:
- C:强制式、第三代
- C++:强制式、面向对象、第三代
- Cobol:强制式、第三代(主要用于商业应用)
- Fortran:强制式、第三代(主要用于科学计算)
- Java:强制式、面向对象、第三代
- Lisp:函数式(也可以是声明式的)、第三代
- ML:函数式、第三代
- Perl:强制式(尽管有声明式元素)、脚本语言
- Python:强制式(但有声明式元素,如列表推导)、面向对象、脚本语言、第三代
- VB (Visual Basic):强制式、面向对象、第四代(但通常被视为第三代语言的一个变种)
请注意,某些语言可能具有多个分类的特点。例如,Python既可以是强制式的,也可以具有声明式的特点。同样,一些现代语言(如Python和Java)通常被归类为第三代语言,尽管它们具有第四代语言的某些特点(如易用性和面向特定应用)。
📇参考答案
——
🔚结语
博文到此结束,写得模糊或者有误之处,欢迎小伙伴留言讨论与批评,督促博主优化内容{例如有错误、难理解、不简洁、缺功能}等,博主会顶锅前来修改~~😶🌫️😶🌫️
我是梅头脑,本片博文若有帮助,欢迎小伙伴动动可爱的小手默默给个赞支持一下,感谢点赞小伙伴对于博主的支持~~🌟🌟
同系列的博文:🌸编译原理_梅头脑_的博客-CSDN博客
同博主的博文:🌸随笔03 笔记整理-CSDN博客