脚本编译错误_编译原理(龙书)习题集-第一章

ab33b1abacf331ef613ebf167cedd12e.png

1.1 语言处理器

练习1.1.1:编译器和解释器之间的区别是什么?

答:

编译器:将源程序阅读并翻译成等价的用另一种语言(目标语言)编写的程序。编译器的重要任务之一是报告它在翻译过程中发现的源程序中的bug。

解释器:直接利用用户提供的输入执行原程序中指定的操作。

所以区别在于:编译器起到是翻译源程序的作用。解释器是起到执行源程序作用。

练习1.1.2:编译器相对于解释器的优点是什么?解释器相对于编译器的优点是什么?

答:

编译器相对于解释器的优点是产生的机器语言目标程序的速度快。

解释器相对于编译器的优点是错误判断诊断效果要好,因为它是逐行执行源程序。

练习1.1.3:在一个语言处理系统中,编译器产生汇编语言而不是机器语言的好处是什么?

答:

因为汇编语言比较容易输出和调试。汇编语言可由汇编器的程序进行处理,并生成可重定位的机器代码。

练习1.1.4:在一种高级语言翻译成为另一个高级语言的编译器成为源到源(source-to-source)的翻译器。编译器使用C语言作为目标语言有什么好处?

答:

1、C语言较为普及,各种平台上都有对其实现的支持;

2、相对于汇编语言,C的抽象更为高级,分离了更多具体的实现细节,可以避免在代码在移植时由于具体机器架构,指令集的不同等其他问题而受到影响。

练习1.1.5:描述一下汇编器所要完成的一些任务。

答:

对汇编语言程序进行处理,并生成可重定位的机器代码。

1.3 程序设计语言的发展历程

练习 1.3.1:指出下面的术语:

1)强制式的 2)声明式的 3)冯·诺依曼式的 4)面向对象的

5)函数式的 6)第三代 7)第四代 8)脚本语言

可以被用于描述下面的哪些语言:

1)C 2)C++ 3)Cobol 4)Fortan 5)Java

6)Lisp 7)ML 8)Perl 9)Python 10)VB

答:

C:强制式、冯·诺依曼式、面向对象、第三代。

C++:强制式、面向对象、冯·诺依曼式、第三代。

Cobol:冯·诺依曼式、第三代。

Fortan:冯·诺依曼式、第三代。

Java:冯·诺依曼式、面向对象、第三代。

Lisp:声明式、函数式、冯·诺依曼式。

ML:冯·诺依曼式、函数式。

Perl:脚本语言、冯·诺依曼式。

Python:脚本语言、冯·诺依曼式、函数式的、面向对象。

VB:强制式、冯·诺依曼式。

1.6 程序设计语言基础

练习1.6.1:对图1-13a中的块结构的C代码,指出赋给w,x,y和z值。

c40f0fcb0398961729b0bd09308b7362.png

赋给 w 的值是13,赋给 x 的值是9,赋给 y 的值是13,赋给 z 的值是9。

练习1.6.2:对图1-13b中的代码重复练习1.6.1。

adc3c480cfc410d7176f403d299cf407.png

赋给 w 的值是9,赋给 x 的值是7,赋给 y 的值是13,赋给 z 的值是9。

练习1.6.3:对于图1-14中的块结构代码,假设使用常见的声明的静态作用域规则,给出其中12个声明中的每一个的作用域。

c4b2dc24bc6bfec179ac5f52659c0801.png

答:

第一行:w的作用域:B1,B2,B5。x的作用域:B1,B5。y的作用域:B2,B3,B4。z的作用域:B1,B3,B4。

第二行:x的作用域:B2。z的作用域:B2,B3。

第三行:w的作用域:B3。x的作用域:B3。

第五行:w的作用域:B4,B5。x的作用域:B4,B5。

第六行:y的作用域:B5。z的作用域:B5。

练习1.6.4:下面的C代码的打印结果是什么?

2b228977435b017f1d97037fc9188c18.png

打印结果是3, 2。

如有错误请在留言指出,不喜勿喷,谢谢。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值