【编译原理 本科教学版】第三章习题答案

 1. 练习3.2.1:对于下列各个语言,查询语言使用手册以确定:(i)形成各语言的输入字母表的字符集分别是什么(不包括那些只能出现在字符串或注释中的字符)?(ii)各语言的数字常量的词法形式是什么?(iii)各语言的标识符的词法形式是什么?

(1) C 语言
 (i) 输入字母表:
 - 字符集:C语言的输入字母表包括:
   - 大小写字母:`A-Z`、`a-z`
   - 数字:`0-9`
   - 特殊字符:`_`、`+`、`-`、`*`、`/`、`%`、`=`、`&`、`|`、`^`、`!`、`<`、`>`、`~`、`;`、`:`、`?`、`,`、`.`、`()`、`[]`、`{}`
 等。
   - 空白字符:空格、制表符、换行符。
 
 (ii) 数字常量的词法形式:
 - 整数常量:如 `123`、`0x1A`(十六进制)、`075`(八进制)、`0b101`(二进制,C99 以后支持)。
 - 浮点数常量:如 `3.14`、`1e10`(科学记数法)。
 
(iii) 标识符的词法形式:
 - 标识符**:由字母(`A-Z`、`a-z`)、数字(`0-9`)和下划线 (`_`) 组成,且不能以数字开头。
 
(2) C++ 语言
 (i) 输入字母表:
 - 字符集:与C语言相似,C++字符集包括:
   - 大小写字母:`A-Z`、`a-z`
   - 数字:`0-9`
   - 特殊字符:`_`、`+`、`-`、`*`、`/`、`%`、`=`、`&`、`|`、`^`、`!`、`<`、`>`、`~`、`;`、`:`、`?`、`,`、`.`、`()`、`[]`、`{}`
 等。
   - 空白字符:空格、制表符、换行符。
 
 (ii) 数字常量的词法形式:
 - 整数常量:如 `123`、`0x1A`(十六进制)、`075`(八进制)、`0b101`(C++11 支持二进制常量)。
 - 浮点数常量:如 `3.14`、`1e10`(科学记数法)。
 - 字符常量:C++ 支持更复杂的字符和字符串字面量,如 `L'a'` 和 `u8"Hello"`。
 
 (iii) 标识符的词法形式:
 - 标识符:同C语言,标识符由字母(`A-Z`、`a-z`)、数字(`0-9`)和下划线 (`_`) 组成,不能以数字开头。
 
(3) C# 语言
 (i) 输入字母表:
 - 字符集:C#的字符集包括:
   - 大小写字母:`A-Z`、`a-z`
   - 数字:`0-9`
   - 特殊字符:`_`、`+`、`-`、`*`、`/`、`%`、`=`、`&`、`|`、`^`、`!`、`<`、`>`、`~`、`;`、`:`、`?`、`,`、`.`、`()`、`[]`、`{}`
 等。
 
  (ii) 数字常量的词法形式:
 - 整数常量:如 `123`、`0x1A`(十六进制)、`075`(八进制)。
 - 浮点数常量:如 `3.14`、`1e10`,C#支持 `float`、`double` 和 `decimal` 类型。
 
  (iii) 标识符的词法形式:
 - 标识符:标识符由字母(`A-Z`、`a-z`)、数字(`0-9`)和下划线 (`_`) 组成,不能以数字开头,C# 还支持 @符号作为转义字符前缀。
 
(4) Fortran 语言
 (i) 输入字母表:
 - 字符集:Fortran 的输入字母表包括:
   - 大小写字母:`A-Z`、`a-z`
   - 数字:`0-9`
   - 特殊字符:`+`、`-`、`*`、`/`、`=`、`<`、`>`、`,`、`.`、`()`、`:`、`!` 等。
 
 (ii) 数字常量的词法形式:
 - 整数常量:如 `123`、`+123`、`-123`。
 - 浮点数常量:如 `3.14`、`1.0E10`。

 (iii) 标识符的词法形式:
 - 标识符:标识符以字母开头,由字母、数字和下划线组成,Fortran 不区分大小写。
 
 (5) Java 语言
  (i) 输入字母表:
 - 字符集:Java 的输入字母表包括:
   - 大小写字母:`A-Z`、`a-z`
   - 数字:`0-9`
   - 特殊字符:`_`、`+`、`-`、`*`、`/`、`%`、`=`、`&`、`|`、`^`、`!`、`<`、`>`、`~`、`;`、`:`、`?`、`,`、`.`、`()`、`[]`、`{}`
 等。
 
  (ii) 数字常量的词法形式:
 - 整数常量:如 `123`、`0x1A`(十六进制)、`0b101`(二进制)。
 - 浮点数常量:如 `3.14`、`1e10`。
 
  (iii) 标识符的词法形式:
 - 标识符:由字母(`A-Z`、`a-z`)、数字(`0-9`)和下划线 (`_`) 组成,不能以数字开头,且区分大小写。

(6) Lisp 语言
(i) 输入字母表:
 - 字符集**:Lisp 的输入字母表包括:
   - 大小写字母:`A-Z`、`a-z`
   - 数字:`0-9`
   - 特殊字符:`_`、`+`、`-`、`*`、`/`、`=`、`&`、`|`、`!`、`<`、`>`、`.`、`:`、`?`、`#`、`'`、`"`
 等。
 
(ii) 数字常量的词法形式:
 - 整数常量:如 `123`、`-123`。
 - 浮点数常量:如 `3.14`、`1.0e10`。
 
(ii

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值