设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
楼主: 枫起
打印 上一主题 下一主题

[已经过期] 一道C++练习题求解

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2227
在线时间
1102 小时
注册时间
2006-1-10
帖子
800
11
发表于 2011-5-30 10:47:29 | 只看该作者
汗,脉大误会了,我的意思是故意反其道而行,有意恶心一下出这需求的人,呵呵。至于为什么规范代码,我是明白其中意义的。
从编译后运行的角度来讲JAVA是静态语言没错,不过JAVA是有反射机制的,算是半动态语言吧。我没怎么接触过C++,但感觉JAVA明显不同C++那样受C的大量影响比如无指针,而更强调面向对象。但现在看来后劲乏力,革命性尚显不足,有被后辈赶超的趋势了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
12
发表于 2011-5-30 12:08:37 | 只看该作者
非常白菜 发表于 2011-5-30 10:47
汗,脉大误会了,我的意思是故意反其道而行,有意恶心一下出这需求的人,呵呵。至于为什么规范代码,我是明 ...

很抱歉没看出你的反讽 T T

我说的是静态类型语言,即类型检测(静态地)发生在编译时(这和 Ruby 这样的动态类型语言在运行时检测类型形成对比),非指缺乏动态性的静态语言。

反射确实是衡量动态性的一大因素,但 Java 6 之前的反射处于一种只读模式,并不支持猴子补丁等程序自修改的功能;Java 6 开放了 JVM 预编译器的 API,这才能动态创建类,所以现在说 Java 是动态应该是不会有争议的了。其实单论动态性而言,C++ 也有通过虚函数实现的动态函数分派(这个概念的其它名称:迟绑定、动态绑定、多态性),但较之当代的各大动态语言,C++ 仅有的那点动态性还差得远了,所以通常不被认为是动态语言。

从编译后运行的角度来讲JAVA是静态语言没错

“编译后运行”是一个实现语言的细节,并非语言特性。Java 的标准中没有一行提到过 Java 语言应该被编译还是被解释。大部分人用的是 Sun 的 Java 实现(JVM),而 Sun 实现 Java 的方式是先进行编译,所以 Java 可以被称为“频繁被编译”的语言。实际上从实现角度来看,即便是被编译,代码也不一定是静态的,得看编译成什么代码——是底层 CPU 的机器指令,还是 Java 虚拟机器指令(字节码)?只有前者才能说是静态语言,后者的指令被虚拟机执行,是可以具有很大的动态性的。

感觉JAVA明显不同C++那样受C的大量影响比如无指针

嗯,所以只能说 Java 的语法和 C++ 有交集而非其子集。

但现在看来后劲乏力,革命性尚显不足,有被后辈赶超的趋势了。

当年轻人们开始把无限的创意和思想融入编程语言的时候,大部分 Java 程序员还在框架下进行体制化的代码作业,既像《肖申克的救赎》中的囚徒,又像一群克隆人。有人曾在 Java 如日中天时说:“如果你只是想要一个工作,那好吧,去学 Java 吧。”他们畏惧改变,故而总是持续着小规模的重构。在 Ruby、Clojure、Scala、Go 等新生代语言面前,Java 就像一个与时代脱轨的、严肃的老者。

Java 社区目前仍然庞大,其用户群体依旧维持榜首,短时间内不会消隐。JVM 号称目前最强大的虚拟机,而 Scala 目前的官方实现是在 JVM 上,所以很有潜力成为 Java 的替代。

点评

之前并没去更多了解理论上的知识,感谢脉大的解析,受教了 :b  发表于 2011-5-30 13:27
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
帖子
6982

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

13
发表于 2011-5-30 12:43:12 | 只看该作者
显然身份证号必然是字符串而不是数字

点评

同,否则最后一个X就没办法表达了的……说  发表于 2011-5-31 10:18
神隐中,偶尔诈尸
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

14
发表于 2011-5-30 15:47:23 | 只看该作者
只要语言本身有使用方便的地方,或者是先行系统足够稳定足够好,那么这门语言就会活着。。
像Java这种已经有很多现有大型系统已经在使用的语言,想要被取代很难吧,说不定衍生出其它版本的几率比较大。比如google的android,你说他为什么不适用ruby的语法风格或者是虚拟机,而是要实现一个类似于JVM的东西呢???
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2227
在线时间
1102 小时
注册时间
2006-1-10
帖子
800
15
发表于 2011-5-30 16:28:06 | 只看该作者
因为JAVA已相当稳健成熟了,使开发者一开始就站在了巨人的肩膀上,但新技术理念需要很长的发展检验期,而在实际应用中越需要稳健项目就越担不起这种风险,或者可能还有成本之类的因素。google显然不像是搞科研的公司,坐享其成当然再好不过了。
回复 支持 反对

使用道具 举报

乌有君
16
乌有君  发表于 2011-5-30 16:32:03
偶有个更能恶心人的方案,直接任何语言编写后转汇编,然后直接C代码中嵌这坨汇编进去……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

ACG宅

梦石
0
星屑
72
在线时间
413 小时
注册时间
2008-10-1
帖子
5595

开拓者贵宾

17
 楼主| 发表于 2011-5-30 20:23:54 | 只看该作者
这帖成讨论编程语言特点的帖子了- -
此号诞生于公元2008年10月1日。
此号消失于公元2012年10月1日。
4年的经历,4年的守望。现在只剩下66RPG的名字和当年的“梦想世界,在你手中。”这一句话。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
18
发表于 2011-5-31 09:54:30 | 只看该作者
link006007 发表于 2011-5-30 15:47
只要语言本身有使用方便的地方,或者是先行系统足够稳定足够好,那么这门语言就会活着。。
像Java这种已经 ...
像Java这种已经有很多现有大型系统已经在使用的语言,想要被取代很难吧,说不定衍生出其它版本的几率比较大。

Java 的 API 是 JVM 的本地接口,可以很轻松地被绑定到任何目标平台是 JVM 的语言,所以现在很多人认为 JVM 上的新生语言 Scala、Groovy 有潜力取代 Java。比如,Scala 的 Lift 框架(一个“借鉴” Rails 的设计哲学而衍生的类似的 Web 框架)就集成了不同的 Java 框架的绑定,同时也支持各种 Servlet 容器,如 Tomcat,Jetty。

比如google的android,你说他为什么不适用ruby的语法风格或者是虚拟机,而是要实现一个类似于JVM的东西呢???

Java 目前是主流,我相信这里并没人能否认这一点。但是,推动科技进步的总是持续不断的创新和改变,我相信越来越多的人都看到了 Java 的不足而开始反思技术发展的未来。CGI 当年也是主流,但大势所趋,还是从历史的舞台淡出了。

另外我还有个主观性极强的、荒诞的不使用 Java 的理由:Java 现在归甲骨文所有,而我们都讨厌甲骨文!:lol这不,前不久 Google 才被甲骨文控诉抄袭 Java 实现的代码。最近好多 geek 由于 MySQL 被甲骨文收购转而奔向 PostgreSQL,正是:恶其主,施及器{:nm_9:}

Android 的 Dalvik 虚拟机只是一个平台,理论上任何语言都可以在上面运行,比如 Ruboto(Ruby on Android)就是一个把 Ruby 编译为 Dalvik 字节码的项目。

@白菜 因为JAVA已相当稳健成熟了,使开发者一开始就站在了巨人的肩膀上,但新技术理念需要很长的发展检验期,而在实际应用中越需要稳健项目就越担不起这种风险,或者可能还有成本之类的因素。google显然不像是搞科研的公司,坐享其成当然再好不过了。

嗯!在移动设备上,稳定性和安全性比在 PC 上更加重要。

Google 不搞 fancy 的科研,但他们的创新产品却一直改变着世界,至少在我看来他们绝非坐拥金山的地主老财。Google 的主要收入源于自动化的 AdWords,所以可以把大量的人力财力投入到自由、高效的开源开发中,这也造就了 Google 在软件界的美名,和微软、甲骨文等形成鲜明对比。
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

19
发表于 2011-5-31 10:21:30 | 只看该作者
哈哈  oracle的rp是不咋地,不过不能把个人的一腔热血和整个大团队的效益混为一谈。
取代Java,你要取代Java拥有的现行的一些列稳定的,运行良好的,效率比其他虚拟机都好的系统和架构。
你可以不用Java,不过如果现在要推行或部署实现一个大的方案,实际情况会迫使你用Java。
你有精力去重新实现所有的库,不过别人可没时间。
取代Java就和一个文明的消逝一样,很难在一夜之间完成。说不定在这些过程中,其他的东西又浮现出来了。总之未来不可预料,任何事物都会消亡,不过无法预计其未来。获取取代Java的是J++也不一定。。。,
又或者过了你年,又是一堆新的思想,正好Java又符合这样的思想,那么Java又会复活。
主导语言的是实际需求和编程思想,而这些思想,永远都在变化。
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

20
发表于 2011-5-31 10:28:06 | 只看该作者
思想可以用语言来表达,而且可以用任何不同的语言来表达,除了表达形式简单或者复杂一样。
在计算机里也是一样。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-28 07:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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