ZAERO软件可以进行非定常乐高气动力课程计算吗?

10385人阅读
计算机自动编程(5)
CT公司对外公布最新研发成果   来自美国芝加哥的消息,一家名为CT(Care Technologies)的软件公司向外界公布了其最新的研发成果&&一款声称可以把应用软件开发速度提高四十七倍并可在某种程度上代替程序员的自动编程软件。据了解,这款软件被命名为OlivaNova。   为了证实这款软件的功能,Care Technologies公司(以下简称CT)还特地邀请了很多对此感兴趣的公司去其位于德国慕尼黑的一个工作室做了为期两天的访问。在该工作室,参观者 们亲自试用了一些由OlivaNova&编&出来的软件,有一个商店管理系统、一个效用管理软件和一个高尔夫俱乐部管理系统。但由于时间的限制,他们并没 能对这些软件的性能进行具体的评估。   看到这则新闻,相信所有的程序员包括比尔&盖茨都会惊出一身冷汗。因为人人都可以用OlivaNova自动编制出需要的软件,人人都是程序员,盖茨们就要 丢掉手中的金饭碗,怎能不急呢?但在打倒比尔之前,还是有必要了解一下这个所谓的自动编程到底是个什么东西?是不是真的如此神奇?   自动编程初露端倪   我们都知道,在各种集成开发环境中,向导(Wizard)可以帮助人们建立多种典型的应用程序。不过这还不能称作自动编程,因为通过向导等建立的程序必须在人工修改后才可正常使用,向导过程中也需要给出各种参数,毫无智能可言。   因此各种组织和公司都致力于在自动编程方面取得进展,如对象管理组织(OMG)在UML 2级的基础上①提出了MDA(Module Driven Architechture)的概念,目标就是要实现从UML企业化模型到最终代码的自动化生成。这类典型的软件包括IBM Rational Rose以及一系列Rational软件。   而上面提到的OlivaNova软件,它并没有采用UML的MDA能力,而是使用了自己编写的模型执行系统。使用OlivaNova软件进行自动编程时, 需要先使用OASIS模型语言建立软件架构,然后OlivaNova会启动内置的转换引擎选择合适的程序开发语言输出程序。其整体思路与MDA并无多大差 异,但应用却要广泛许多。   目前OlivaNova支持的开发平台有Windows和几乎所有的Unix/Linux,并可自动生成VB 6.0、JAVA/EJB、JSP、Cold Fusion、。NET程序代码,以用来开发Web、客户端/服务器、Web Serivce、Windows Service等程序。   OlivaNova扩展了自动编程应用的领域,可谓领先于IBM等大公司,着实火了一把,但这种自动编程真的能够让人人都编制出自己需要的程序吗?我们先来看看编程语言的发展历史&&   程序设计语言发展史   当计算机在上世纪四十年代刚刚问世的时候,编程可谓是痛苦的工作。当时的计算机,并没有键盘等输入设备,人们只能使用笨重的继电器、开关去操作庞大的&巨 型机&。所有的程序都使用机器语言以二进制形式(全都是0、1的组合)书写,再用专门的像老式打字机一样的穿孔机把源程序敲到到一条长长的黑纸带上。然后 操作员拿着长长的纸带进入酷似外科手术室的机房,进行期待已久的计算。若是程序出现错误,还需要重新打孔。   1949年,汇编语言被提出,它大大提高了编程的效率,但仍不够直观简便。1953年12月,IBM公司程序工程师J. Backus开始设计一种用于科学计算的&公式翻译语言&(FORmula TRANslator)。他的小组于1954年完成了第一个程序设计高级语言&&FORTRAN。自此以后,各种高级程序设计语言如雨后春笋般涌现出来, COBOL、ALGOL、BASIC、PASCAL、C/C++&&令人眼花缭乱。   近年来,随着面向对象程序设计和网络技术的兴起,一批新的程序设计语言开始流行,如Sun的Java、微软的C#语言和。Net平台、网页编程流行的PHP、ASP、通用的XML等等。   但再怎么说程序开发语言也只是让人们越来越易读懂程序,在软件日益庞大的今天,动辄几万行的源码全靠手工编写,非把人累趴下,因此各种各样的开发工具就成为编程的必需品&&   开发工具助力程序设计   开始,人们使用编译器或解释器内置的查错功能自动检查程序源码中的错误,在代码不多的情况下,也足够程序员使用。而随着代码的增多,单纯在编译时检查错误 远远不能满足需要,因此诞生了一些具有语法高亮显示、规范代码功能的编辑器,它们都能够在书写代码时有所提示,将错误扼杀于萌芽状态。这方面著名的有 Emacs、vi,还有UltraEdit、EmEditor等,目前还被广泛使用。   上述编译器以及编辑器都没能解决代码基本靠手写的问题,因此集成、可视化的开发环境被提上日程。集成开发环境减少了开发程序所付出的时间、金钱以及脑细 胞,只要轻敲几个键,一整段代码就可以使用了。在这方面,典型的如Macromedia的Dreamweaver和Microsoft的Visual Studio .Net。   Dreamweaver可以根据用户的排版方式自动生成HTML代码,最新的Dreamweaver MX2004更是将主流网页服务器脚本和数据库开发结合在一起,这样普通人也可通过它设计出个性的站点。Visual Studio .Net则更为强大,其拥有的众多特性,如注解报告、命令窗口、部署工具、文档导航等,使程序员开发和维护一个项目更加容易。   各种编程工具虽然极大地解放了程序员的双手,但重要的代码组合还是需要手工完成。人们梦想着有一天能够不再挥动双手而自由翱翔在程序的海洋里,而这一梦想也正在逐步变为现实&&   自动编码初级阶段   不管是OlivaNova还是IBM的Rational,在生成代码之前都需要用特定的语言建立一个软件模型。因此,与其说它们是自动编程工具,还不如说是辅助程序员开发的快速编码工具,并且仅仅处于&自动编码&的初级阶段。   为什么这样说呢?这是由于用此类自动编码软件所生成的代码很大程度上只是一些原型,往往可控性较差,真正有用、实用的东西还是需要人工实现。CT宣称OlivaNova所写出来的代码的错误只有手工编程的7%,虽然很少,但还是会有错误。   既然这样,我们使用OlivaNova打倒比尔的梦想是不能实现了。但从中可以看到,未来单纯的编码工作将逐渐消失,对软件工程的掌握会成为程序员这一行当的必需,否则真有丢掉饭碗的危险。   (上海拿破盾)(jy23y01)   编者按:作为普通人的我们也不必灰心,因为人们对自动编程的研究是无止境的,当人工智能取得长足发展,各种软件模型能够直接由具有人工智能的计算机建立之 时,自动编程就真正实现了。那时的我们,只需告诉计算机软件要实现的功能,就能够自动生成相应的代码,比尔&盖茨们再也不能从我们手中掠走分毫血汗 钱?.....
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:544087次
积分:7387
积分:7387
排名:第2611名
原创:166篇
转载:104篇
评论:149条
(1)(1)(12)(10)(2)(5)(5)(5)(2)(11)(4)(8)(1)(1)(2)(3)(2)(4)(2)(6)(1)(2)(4)(19)(4)(1)(12)(1)(4)(1)(5)(1)(2)(17)(4)(5)(3)(3)(8)(5)(11)(14)(9)(11)(6)(2)(28)您所在的位置: & &
软件教程 - 编程开发
java怎么设置cookie?java设置cookie教程介绍。java在开发使用的时候经常会有朋友出现不知道该怎么设置cookie的情况,cookie作为Java开发中十分重要的一个环节,许多朋友都还不知道怎么对其进行设置,其实不用担心,一...
java怎么设置随机数?java设置随机数教程。java作为程序猿开发人员都在使用的一款编程语言,许多入门的朋友都陷入了一个简单的问题就是,使用java开发时随机数要怎么设置?java怎么设置随机数?经常会有地方需要用到...
  eclipse怎么导入maven项目?Eclipse怎么导入maven项目一直是困扰着大量程序猿和刚上手小白们的问题,使用eclipse的时候却不知道该怎么才能导入maven项目,是一件十分苦恼的事情,不用担心小编今天为大家带来了详...
  eclipse怎么导入web项目?Eclipse作为最热门的开发工具还有许多人不知道使用eclipse或者myeclipse的时候怎么向eclipse软件中导入web项目,不用担心其实很简单,小编今天为大家带来了一篇详细的Eclipse以及Myecl...
Axure RP 8设计验证码倒计时原型方法?Axure RP 8设计软件设计一个场景下的页面,场景:输入手机号码,点击“获取”按钮,“获取”变为倒计时,将验证码发送到手机号;用户可以将手机上验证码输入到验证码框。下面...
Axure RP 8图片点赞功能怎么设计?一起来了解下吧
Axure RP 8怎么实现数学加法计算?一般情况下,常见的是有算法运算,有加减乘除运算。有这么一个场景:一个加数,另外一个加数,点击”加法“按钮,将计算的结果填在最后一个输入框。下面利用Axure RP 8 软件实现...
JavaScript怎么实现的商品抢购倒计时?JavaScript实现的商品抢购倒计时功能。分享给大家供大家参考,具体如下:
Spring Data JPA怎么调用存储?JPA连接到数据库,调用存储过程,这样的需求很常见。本文就针对这一点,讲述如何使用spring Data JPA调用存储过程的方法。
Java中的== 和equals()有什么方法实例?来看看Java中的== 和equals()方法:
& 上一页 1
热门关键字8741人阅读
无人编程让程序员失业
开发无人编程即编程自动化系统,让程序员失业
不久前我写了汉澳sinox无人工厂,引起很大反响,东莞开始有工厂实施无人工厂计划,取代工人。虽然目前即使开发无人工厂也可能只是0.1版本,然后有1.0,2.0,无人工厂不断升级版本,当然跟预想中的汉澳sinox无人工厂还有很大距离,但是毕竟提出了概念,并指明了方向,无人工厂技术研究很可能在中国引发新的工业革命。也为中国制造业指明了出路,不用担心产业转移等让中国丧失世界工厂的地位,无人工厂技术和资金投入会越来越多,保持中国制造业领先地位还是有可能的。
我有时在想,无人技术发展很快,比如无人机技术已经很成熟,最近无人驾驶也开始实用,无人工厂如果技术也成熟了,那么下一步发展的无人技术是什么?无人是指不需要人,完全自动化操控的技术,不是没有人。作为程序员,我很懒,我希望很多简单重复的工作不需要人去做,直接自动化编程就好,比如软件代工,没什么技术含量,总是由编码工人做重复工作,而不熟练的程序员还做不了,如果用机器来做,其实应该是软件来做,就不需要重复工作的编码工人了。软件设计不需要机器生产,只是脑力劳动,所以也没有无人编程工厂,应该是无人编程软件,用软件生产软件,只是高智慧的软件生产普通应用程序。无人编程工具,应该叫自动化编程系统,还是需要人输入需求的,否则软件不知道生产什么。需求千变万化,不像工厂生产的固定产品,软件生产需要面对复杂的应用程序生成,估计开发难度会比无人工厂大很多,甚至不可能。不过我觉得既然提出了无人编程,即使只是感念,也要把它完善,也许几十年以后无人编程会变成现实。
一旦无人编程技术成熟,程序员,这个最富智慧和脑力的职业,也要面临消失的可能。程序员将会继产业工人之后走向失业。而很多普通的工作比如理发,护理,打杂等,都可能由机器人完成,这个可能比较容易,要是能取代程序员,那么估计没有什么工作不可以由无人机器或者软件替代。这将是非常可怕,这样还需要什么工作呢?大家都失业在家,让机器人、智能软件接管世界?开发机器人可以由无人工厂完成,而开发机器人软件则由无人编程软件完成,最后只有开发无人编程软件的人员不失业。开发无人编程工具的人是谁?应该是各专业的顶尖科学家。
只有顶尖科学家可以工作,其他人都失业,成为类似原始部落社会的人,不用做事。这个扯远了,不过程序员应该是最后一批失业的产业工人。
好,现在已经知道有无人编程这个软件了,那么这个软件是怎么实现呢?说实话,这个软件现在技术还不成熟,我们只能探讨各种可能,并找到开发方法。
.net类库的优势
我用过汇编。c/c++,java,perl,php等各种编程语言和工具,直到我用了C#.net,才知道编程真的越来越容易了,汇编不用说了,用机器语言写程序,难。c语言,好些了,不过每个函数功能自己写,累。vc好点,但是mfc写界面还是很难,而且很多算法要自己实现,或者抄袭别人写的类。java更好点。而脚本语言perl.php等怎么说呢?管理系统和做网页是适合,但是做界面是很难的。最后出现了伟大的.net,很多功能函数,数据结构,算法都由.net类库分门别类实现好了,比如要把“1,2,3,4,5”字符串按逗号分开,用split函数就好了,以前见vb有这个函数,觉得很方便,但是c/c++是没有的,现在C#就特别方便了,直接用split就好。所以.net类库非常方便用户编程,而且界面控件也很方便实现,甚至web网页程序也可以用控件实现。.net让程序员开发速度快了好多倍。只可惜.net不能跨平台,windows贵且不好用,所以被抵制。java现在也开发了很多类库,跨平台很好,所以被unix/linux世界推崇。
.net类库让人类开发能力上了一个档次,虽然面对各种多样复杂的计算,还是需要设计数据结构和逻辑算法,但是大部分基础功能还是可以由.net类库实现了。
能不能把.net类库提升到一个档次?开发更多的函数功能应该是可能的。但是也不可能包罗万象,把所有计算都包含进去,比如新加坡总理李显龙写的数独求解算法,把算法加入类库,普通程序员就可以开发九宫这种数独游戏。不过数独算法应该找到源代码,这样不需要加入.net类库也可以引用。
又比如开发3d游戏,虽然可以直接用directx渲染引擎库,但是要实现游戏功能还不是简单调用api就可以,所以又有3D游戏引擎,把更多的函数功能封装成游戏调用接口,但是引擎接口也是很复杂的,熟悉引擎还要花时间,更不要说调用引擎完成游戏场景开发,而游戏数据结构设计,比如静态场景物体和动态物体,通关逻辑设计,对话等,内容非常复杂,不是会写程序就能解决的。我们能不能把游戏引擎再次加入.net类库,让.net类库功能无所不包呢。完全可能,只是这个是.net要做呢,还是属于开发人员引入的引擎类库?如果.net类库无所不包,不过也不可能解决所有的问题,如果有上百万个类,用户又怎么知道怎么使用呢?
用框架自动生成基础代码
.net类库无所不包,但是用户怎么用呢?我们开发3d游戏首先要用的是directx(简称dx)显示引擎,在此基础上再使用Unity3D游戏引擎,然后才可以设计数据结构和逻辑算法,现在Unity3D是在dx引擎之上更高一级的引擎,可见需要层层调用引擎。.net类库–&dx–&Unity3D–&游戏,要开发游戏要调用3层引擎,我们称为框架,基础代码,这些框架让我们节省大量工作,如果没有这些框架,开发一个游戏几乎是难以上青天。现在开发者只要集中在游戏逻辑设计以及图像设计就可以了,省去了底层编码。编程自动化就要首先调用框架,然后集中在逻辑设计,从而大大简化无人编程工具的开发。
我们写程序也是这样,是在操作系统这个框架平台上开发,否则从开发操作系统开始,设计程序简直是不可能。
我们设计几万个最佳的框架,放入无人编程工具里面,根据需要调用框架,从而实现编程自动化。数独最优解法也可以加入框架,属于数学类框架,供上层调用。
用脚本语言实现自动代码生成
有了框架基础代码,我们设计应用程序就集中在数据结构和逻辑算法设计,根据用户的数据结构和逻辑算法自动生成源代码。比如我们说的元语言编程,通过定义元语言,用脚本自动生成代码。我们可以用shell,perl,python等脚本语言自动生成代码,可以输入元语言脚本,自动生成某种语言的源代码。比如说要生成登录程序,会根据用户定义生成账户的注册,修改,删除,登录,验证码等包含数据库操作和界面交互的源代码,不再需要普通程序员编写代码了。脚本的定义和解释都是由用户写的脚本决定,可以根据需要修改脚本。这个方法可以生成大部分代码,只是灵活性不是很高,可能满足比较固定的应用程序代码生成。
用lisp等高级语言实现自动代码生成
lisp是表处理语言,拥有xml,元语言,模版等特征,可以用来生成新的应用程序代码,不过代码生成都用lisp实现,一旦改动,是不是也要修改lisp程序,跟脚本生成差别不是很大,不过对某些程序生成可能有用。比如cad用lisp脚本生成三维模型,也许在涉及开发制图程序,可能lisp很有用。比如很多模型可以用lisp保存。
现在已经有一些代码生成器软件,可以通过向导方式生成源代码。
用模版实现自动代码生成
我们开发大同小异的网页程序,为了满足个性化的界面输出,大量使用模版功能。在无人编程工具里面,我们是不是可以引入模版,从而满足大同小异的多样化应用程序生成需要。我们编程语言也引入了模版,也称为泛型,泛类型,开发程序用《T》代表任何类型数据,这样写程序调用会有统一的接口,不管这个类型是整数,实数还是字符串,使用的时候指定T的类型就可以。
我们开发自动代码生成也可以用模版,比如指定数据库字段的名字和类型,就可以自动生成数据表字段,以及操作数据库的类,界面操作的类。而界面颜色用了模版,用户指定了某种颜色,就在生成的代码中产生指定的颜色,而不是固定死,对于动态生成颜色的代码可能没用。模版可能适合生成某些比较固定的模式。
用大数据云计算实现自动代码生成
我看到语音识别系统存入数百万个语音片段,而表情识别系统则有几百万个表情存入数据库,可见自动代码生成可能存入数百万个代码片段,然后有数百万个分门别类好的功能函数,大量的数据结构,大量的逻辑算法,甚至是逻辑算法生成模型。比如生成1到1万的素数和,就要调用循环代码,素数判断函数,累加几个功能,显然用大数据,模版等技术,生成1到1万的素数和代码是完全可能的。
更复杂的,游戏设计,设计背景物体,怪物,玩家数据结构设计,物体出现、运动、死亡的逻辑,要完全自动生成,需要开发人员定义很多元数据,而且可能还不够,需要设计独有的算法,只是编写代码是不需要了。应用程序复杂多样,可能自动生成工具也不是那么简单能实现,不过像教学类的,比如出题考试,无非是建立题库,出题逻辑算法,答案比较和分数生成,最难的是作文计分,这个智能程度很高,开发自动生成工具需要熟练的了解相关专业,然后可以生成一万个考题应用程序,甚至考题系统也能智能化,这个程序本身就能应付一万种考题系统,那么自动生成考题系统可能就不需要了。
综合多种技术人工智能自动生成代码
大数据可能还不能满足代码生成需要,可能还需要各种代码生成模型,我们说这是更高一级的代码生成人工智能,人工智能将应用上面提到的各种程序生成技术和手段,甚至自我学习能力,完成自动代码生成。人工智能的神经网络,深度学习技术,可能对代码生成很有帮助。
开发sepl自动编程工具
既然提出了编程自动化,我觉得sepl不应该只是满足于作为一个编程语言和集成开发工具,而是一个更高一级的无人编程工具。sepl无人编程工具拥有数百万个代码片段,数十万个框架,数十万个代码生成模型,大量的模版,用户只需要定义应用程序生成条件,就可以做到一键生成应用程序。这样就不再需要程序员,而只是需要需求分析员,程序代码自动生成。
新一代程序界面将智能动态输出界面,从而实现图形界面开发自动化
在多层逻辑实现的程序设计中,比如游戏,后台服务器端可能都差不多,游戏逻辑也接近,只是反映在界面上,个性化界面,导致界面设计很复杂,如果界面是静态的,那么几亿个用户,涉及界面设计,自动生成很难实现人性化界面。不过如果我们采用动态界面输出技术,系统根据个人喜好输出界面,就不再需要面对无数的个性化界面设计。动态的界面会根据个人喜好调整界面输出。这样自动化代码生成面临的复杂个性化界面输出就解决了,而后端逻辑设计,代码自动生成就变得容易了。
自动代码测试让程序合格出厂
生成的代码是否合格可用,如果用人去检查测试,也是很麻烦的。系统推出自动代码测试,生成源代码的时候也生成测试代码,可以对程序进行全面的完整的自动化测试,合格的产品可以出厂了。
是噩梦还是光明?
自动代码生成系统出来后,写程序不再需要编码,程序员自然不需要很多。当人们还在因为写不好程序而困顿的时候,开发自动程序生成工具是不是早了一点。其实自动程序生成也不是不需要写程序,而是写一次程序,到处可以利用,不用重复写程序了,比如数独游戏一旦实现了自动生成,也许某个3d游戏需要数独游戏,这个3d游戏就不需要重新写数独程序, 而是开发工具自动生成。
就像java编写一次,到处运行一样,无人编程是写一次程序,到处可以使用,不需要写第二次了。
无人编程工具出现,编程速度会非常快,一个人顶上100个程序员,中国原来需要500万个程序员现在只需要5万个,99%的程序员失业了。
即使最复杂的应用程序都能自动生成,机器人等单一程序是不是更容易?
现在sepl无人编程工具还需要像visual studio那样到处散卖吗?估计也没有人买得起。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:347082次
积分:5501
积分:5501
排名:第4316名
原创:222篇
评论:102条
(2)(1)(2)(3)(3)(1)(1)(2)(1)(1)(1)(2)(3)(1)(1)(2)(3)(3)(1)(5)(7)(4)(7)(8)(10)(6)(12)(13)(13)(10)(6)(10)(13)(11)(8)(3)(5)(3)(5)(1)(1)(2)(1)(1)(2)(1)(1)(2)(1)(3)(4)(5)(1)(5)(1)

我要回帖

更多关于 气动力法杖 的文章

 

随机推荐