仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1522|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA网页设计Mini Java编译器(二)

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:46:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
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:54 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
莫相离 该用户已被删除
板凳
发表于 2015-1-24 16:48:37 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
金色的骷髅 该用户已被删除
地板
发表于 2015-1-25 12:59:51 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
再见西城 该用户已被删除
5#
发表于 2015-2-2 22:09:37 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
活着的死人 该用户已被删除
6#
发表于 2015-2-8 11:39:10 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
分手快乐 该用户已被删除
7#
发表于 2015-2-10 22:09:10 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
柔情似水 该用户已被删除
8#
发表于 2015-2-11 17:37:23 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
只想知道 该用户已被删除
9#
 楼主| 发表于 2015-2-25 12:35:41 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
透明 该用户已被删除
10#
发表于 2015-3-7 12:07:21 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
乐观 该用户已被删除
11#
发表于 2015-3-15 04:05:20 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
第二个灵魂 该用户已被删除
12#
发表于 2015-3-20 20:07:15 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
灵魂腐蚀 该用户已被删除
13#
发表于 2015-3-30 14:45:19 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
海妖 该用户已被删除
14#
发表于 2015-3-31 10:04:42 | 只看该作者
是一种为 Internet发展的计算机语言
愤怒的大鸟 该用户已被删除
15#
发表于 2015-4-3 21:34:25 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
老尸 该用户已被删除
16#
发表于 2015-4-10 05:53:16 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
admin 该用户已被删除
17#
发表于 2015-4-12 22:09:11 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
小妖女 该用户已被删除
18#
发表于 2015-4-16 04:10:47 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
飘灵儿 该用户已被删除
19#
发表于 2015-4-22 08:06:38 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
因胸联盟 该用户已被删除
20#
发表于 2015-4-28 22:10:31 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 23:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表