仓酷云
标题:
JAVA网页设计Mini Java编译器(二)
[打印本页]
作者:
只想知道
时间:
2015-1-18 11:46
标题:
JAVA网页设计Mini Java编译器(二)
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。编译2、MiniJava的文法
BNF
Goal
::=
MainClass(TypeDeclaration)*<EOF>
MainClass
::=
"class"Identifier"{""public""static""void""main""(""String""[""]"Identifier")""{"PrintStatement"}""}"
TypeDeclaration
::=
ClassDeclaration
|
ClassExtendsDeclaration
ClassDeclaration
::=
"class"Identifier"{"(VarDeclaration)*(MethodDeclaration)*"}"
ClassExtendsDeclaration
::=
"class"Identifier"extends"Identifier"{"(VarDeclaration)*(MethodDeclaration)*"}"
VarDeclaration
::=
TypeIdentifier";"
MethodDeclaration
::=
"public"TypeIdentifier"("(FormalParameterList)?")""{"(VarDeclaration)*(Statement)*"return"Expression";""}"
FormalParameterList
::=
FormalParameter(FormalParameterRest)*
FormalParameter
::=
TypeIdentifier
FormalParameterRest
::=
","FormalParameter
Type
::=
ArrayType
|
BooleanType
|
IntegerType
|
Identifier
ArrayType
::=
"int""[""]"
BooleanType
::=
"boolean"
IntegerType
::=
"int"
Statement
::=
Block
|
AssignmentStatement
|
ArrayAssignmentStatement
|
IfStatement
|
WhileStatement
|
PrintStatement
Block
::=
"{"(Statement)*"}"
AssignmentStatement
::=
Identifier"="Expression";"
ArrayAssignmentStatement
::=
Identifier"["Expression"]""="Expression";"
IfStatement
::=
"if""("Expression")"Statement"else"Statement
WhileStatement
::=
"while""("Expression")"Statement
PrintStatement
::=
"System.out.println""("Expression")"";"
Expression
::=
AndExpression
|
CompareExpression
|
PlusExpression
|
MinusExpression
|
TimesExpression
|
ArrayLookup
|
ArrayLength
|
MessageSend
|
PrimaryExpression
AndExpression
::=
PrimaryExpression"&&"PrimaryExpression
CompareExpression
::=
PrimaryExpression"<"PrimaryExpression
PlusExpression
::=
PrimaryExpression"+"PrimaryExpression
MinusExpression
::=
PrimaryExpression"-"PrimaryExpression
TimesExpression
::=
PrimaryExpression"*"PrimaryExpression
ArrayLookup
::=
PrimaryExpression"["PrimaryExpression"]"
ArrayLength
::=
PrimaryExpression".""length"
MessageSend
::=
PrimaryExpression"."Identifier"("(ExpressionList)?")"
ExpressionList
::=
Expression(ExpressionRest)*
ExpressionRest
::=
","Expression
PrimaryExpression
::=
IntegerLiteral
|
TrueLiteral
|
FalseLiteral
|
Identifier
|
ThisExpression
|
ArrayAllocationExpression
|
AllocationExpression
|
NotExpression
|
BracketExpression
IntegerLiteral
::=
<INTEGER_LITERAL>
TrueLiteral
::=
"true"
FalseLiteral
::=
"false"
Identifier
::=
<IDENTIFIER>
ThisExpression
::=
"this"
ArrayAllocationExpression
::=
"new""int""["Expression"]"
AllocationExpression
::=
"new"Identifier"("")"
NotExpression
::=
"!"Expression
BracketExpression
::=
"("Expression")"
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。
作者:
山那边是海
时间:
2015-1-19 20:58
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者:
莫相离
时间:
2015-1-24 16:48
Java 编程语言的风格十分接近C、C++语言。
作者:
金色的骷髅
时间:
2015-1-25 12:59
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者:
再见西城
时间:
2015-2-2 22:09
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者:
活着的死人
时间:
2015-2-8 11:39
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者:
分手快乐
时间:
2015-2-10 22:09
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者:
柔情似水
时间:
2015-2-11 17:37
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者:
只想知道
时间:
2015-2-25 12:35
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者:
透明
时间:
2015-3-7 12:07
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者:
乐观
时间:
2015-3-15 04:05
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者:
第二个灵魂
时间:
2015-3-20 20:07
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者:
灵魂腐蚀
时间:
2015-3-30 14:45
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者:
海妖
时间:
2015-3-31 10:04
是一种为 Internet发展的计算机语言
作者:
愤怒的大鸟
时间:
2015-4-3 21:34
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者:
老尸
时间:
2015-4-10 05:53
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者:
admin
时间:
2015-4-12 22:09
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者:
小妖女
时间:
2015-4-16 04:10
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者:
飘灵儿
时间:
2015-4-22 08:06
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者:
因胸联盟
时间:
2015-4-28 22:10
是一种语言,用以产生「小应用程序(Applet(s))
作者:
蒙在股里
时间:
2015-5-1 04:10
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2