EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;

Slides:



Advertisements
Similar presentations
a simplified C to Java Compiler
Advertisements

第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
C#程序设计案例教程 第3章 程 序 结 构.
Tool Command Language --11级ACM班 金天行.
第一章 C语言概述 计算机公共教学部.
第4章 JavaScript脚本语言基础 4.1 JavaScript简介 4.2 JavaScript语法基础
14 JavaScript语言基础 JavaScript是一种轻量级、解释型的Web开发语言。所谓轻量级,就是语言的体系结构不是很庞杂,例如,没有C、Java等语言中的类、内存管理、系统管理等高深的知识范畴;所谓解释型,就是语言在浏览器或服务器等环境中直接被解释执行,不需要对源代码进行编译操作。
第 5 章 流程控制 (一): 條件分支.
第二章 JAVA语言基础.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
第三章 控制结构.
初中獨立專題探究(文字模式) 課程規劃與教學經驗分享
Ch07 PHP程式基礎 網頁程式設計.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
C#程序设计基础 $5 流程控制.
Class 2 流程控制-選擇敘述與迴圈.
C++Primer 3rd edition 中文版 Chap 5
第一次随堂作业(10.16) 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
C++中switch语句的BNF 否极泰来 ——《周易》.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
本單元介紹何謂變數,及說明變數的宣告方式。
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
PHP 程式流程控制結構.
第二单元 C#语法 劳动和社会保障部全国计算机信息高新技术考试指定教材——ASP.NET.
CHAP13 演算法概論 高中資訊科技概論 松崗圖書公司.
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
第二章 Java语言基础.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
Java程序设计 第2章 基本数据类型及操作.
程式設計 老師:戴自強 助教:楊斯竣.
陳維魁 博士 儒林圖書公司 第五章 控制結構 陳維魁 博士 儒林圖書公司.
计算机算法设计与分析(第3版) 王晓东 编著 电子工业出版社.
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
第4章 PHP流程控制语句.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
第二章Java基本程序设计.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
程式結構&語法.
第三章 C++的语句和简单的程序设计 主要内容:
陳維魁 博士 儒林圖書公司 第三章 變數與繫結 陳維魁 博士 儒林圖書公司.
Expressions & Statements
第二章 Java基本语法 讲师:复凡.
第3章 JavaScript基本语句.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
單元名稱:結構化程式設計 報告人 劉洲溶.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
Do While 迴圈 東海大學物理系‧資訊教育 施奇廷.
第2章 Java语言基础.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
迴圈(重複性結構) for while do while.
C#快速導讀 流程控制.
判斷(選擇性敘述) if if else else if 條件運算子.
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基础语法 北京传智播客教育
编译原理实践 6.程序设计语言PL/0.
第二章 Java基本语法 讲师:复凡.
Presentation transcript:

EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构; 假定有语法类 <exp> 表示一般表达式,<s-exp> 表示可用于 switch 标号的静态表达式; 请用扩展的 BNF 描述 C++语言里类声明的结构; 假定有语句类<statement>表示语句,有参数列表类<parameter_list>表达参数列表; 请用扩展的 BNF 描述 Java语言里类声明的结构; 假定有语句类<statement>表示语句,有参数列表类<parameter_list>表达参数列表,有表达式类<expression>表达表达式;

一、扩展BNF描述C语言中的语句 语句 <statement> ::= block | <variable-statement> |<assignment-statement> |<labeled-statement> | <expression-statement> | <condition-statement> | <iteration-statement> | <jump-statement> |<empty-statement> 2. 语句块 block ::= '{' [<statement-list>] '}' statement-list ::= [<statement-list>] <statement>

3.变量声明 variable-statement ::= <variable-type> <variable-declaration-list> ';' variable-declaration-list ::= <variable-declaration> {','<variable-declaration>} variable-declaration ::= <identifier> [ '=' <exp>] 4.赋值语句 assignment-statement ::= <identifier> '=' <exp> ';' 5.带标签语句 label-statement ::= <identifier> : <statement> | 'case' <s-exp> : <statement> | 'default : '<statement> 6.表达式语句 expression-statement ::= <exp> ';'

7.条件语句 condition-statement ::= 'if' '(' <exp> ')' <statement> | 'if' '(' <exp> ')' <statement> 'else' <statement> | 'switch' '(' <exp> ')' <statement> 8.循环语句 iteration-statement ::= 'while' '(' <exp> ')' <statement> | 'do' <statement> 'while' '(' <exp> ')' ';' | 'for' '(' [<exp>] ';' [<exp>] ';' [<exp>] ')' <statement> 9.跳转语句 jump-statement ::= 'continue' ';' | 'break' ';' | 'return' [<exp>] ';' | 'goto' <identifier> ';' 10.空语句 empty-statement ::= ';'

二、扩展BNF描述C++语言中的类声明 类声明 class_declaration ::= 'class' <identifier> '{' {field_declaration} '}' ';' 2. 域声明 field_declaration ::= |<modifier> ':' {<method_declaration> | |<constructor_declaration> |<destructor-declaration>} |<modifier> ':' {<variable_declaration>} 变量声明 variable_declaration ::= <type> <identifier> { ',' <identifier> } ';‘

4. 方法声明 method_declaration ::= <type> <identifier> '(' [<parameter_list>] ')' ';' 5. 构造函数声明 constructor_declaration ::= <identifier> '(' [<parameter_list>] ')' '{' {<statement>} '}' ';' 6. 析构函数声明 destructor-declaration ::= '~' <identifier> '(' ')' '{' {<statement>} '}' ';'

三、扩展BNF描述Java语言中的类声明 class_declaration ::= <modifier> 'class' <identifier> ['extends' <class_name>] ['implements' <interface_name> {',' <interface_name> } ] '{' <field_declaration> '}' 2. 域声明 field_declaration ::= [doc_comment] | <method_declaration> |<constructor_declaration> | <variable_declaration> |<static_initializer> ";"

3. 方法声明 method_declaration ::= <modifier> <type> <identifier> '(' [<parameter_list>] ')' <statement_block> ';' 4. 构造声明 constructor_declaration ::= <modifier> <identifier> '(' [<parameter_list>] ')' <statement_block> 5. 语句块 statement_block ::= '{' { <statement> } '}'

6. 变量声明 variable_declaration ::= <modifier> <type> <variable_declarator> {',' <variable_declarator>} ';' 7. 变量声明符 variable_declarator ::= <identifier> { '[' ']' } [ '=' <variable_initializer>] 8. 变量初始化 variable_initializer ::= <expression> |'{' [<variable_initializer > { ',' <variable_initializer>} ] '}' 9. 静态初始化 static_initializer ::= 'static' <statement_block>

欢迎大家提出质疑并交流。 谢谢!