编译器专利
A. 电脑是谁发明出来的
第一台计算机(ENIAC)于1946年2月,在美国诞生。提出程序存储的是美国的数学家 冯^诺依曼, 在美国陆军部的资助下,与1943年开始了ENIAC的研制,1946年完成; 一、机械计算机的诞生 在西欧,由中世纪进入文艺复兴时期的社会大变革,极大地促进了自然科学技术的发展,人们长期被神权压抑的创造力得到了空前的释放 。而在这些思想创意的火花中 ,制造一台能帮助人进行计算的机器则是最耀眼、最夺目的一朵。从那时起,一个又一个科学家为了实现这一伟大的梦想而不懈努力着。但限于当时的科技水平,多数试验性的创造都以失败而告终,这也就昭示了拓荒者的共同命运: 往往在倒下去之前见不到自己努力的成果。而后人在享用这些甜美成果的时候,往往能够从中品味出汗水与泪水交织的滋味…… 1614 年:苏格兰人John Napier(1550 ~1617 年)发表了一篇论文 ,其中提到他发明了一种可以进行四则运算和方根运算的精巧装置。 1623 年:Wilhelm Schickard(1592 ~1635 年)制作了一个能进行6 位数以内加减法运算,并能通过铃声输出答案的“计算钟”。该装置通过转动齿轮来进行操作。 1625 年:William Oughtred(1575 ~1660 年)发明计算尺。 1668 年:英国人Samuel Morl(1625 ~1695 年)制作了一个非十进制的加法装置,适宜计算钱币。 1671 年:德国数学家Gottfried Leibniz 设计了一架可以进行乘法运算,最终答案长度可达16位的计算工具。 1822 年:英国人Charles Babbage(1792 ~1871 年)设计了差分机和分析机 ,其设计理论非常超前,类似于百年后的电子计算机,特别是利用卡片输入程序和数据的设计被后人所采用。 1834 年:Babbage 设想制造一台通用分析机,在只读存储器(穿孔卡片)中存储程序和数据 。Babbage在以后的时间里继续他的研究工作,并于1840 年将操作位数提高到了40 位,并基本实现了控制中心(CPU)和存储程序的设想,而且程序可以根据条件进行跳转,能在几秒内做出一般的加法,几分钟内做出乘、除法。 1848 年:英国数学家George Boole 创立二进制代数学,提前近一个世纪为现代二进制计算机的发展铺平了道路。 1890 年:美国人口普查部门希望能得到一台机器帮助提高普查效率。Herman Hollerith (后来他的公司发展成了IBM 公司)借鉴Babbage 的发明,用穿孔卡片存储数据,并设计了机器。结果仅用6 周就得出了准确的人口统计数据(如果用人工方法,大概要花10 年时间)。 1896 年:Herman Hollerith 创办了IBM 公司的前身。 二、电子计算机问世 在以机械方式运行的计算器诞生百年之后,随着电子技术的突飞猛进,计算机开始了真正意义上的由机械向电子时代的过渡,电子器件逐渐演变成为计算机的主体,而机械部件则渐渐处于从属位置。二者地位发生转化的时候,计算机也正式开始了由量到质的转变,由此导致电子计算机正式问世。下面就是这一过渡时期的主要事件: 1906 年:美国人Lee De Forest 发明电子管,为电子计算机的发展奠定了基础。 1924 年2 月:IBM 公司成立,从此一个具有划时代意义的公司诞生。 1935 年:IBM 推出IBM 601 机。这是一台能在一秒钟内算出乘法的穿孔卡片计算机 。这台机器无论在自然科学还是在商业应用上都具有重要的地位,大约制造了1500 台。 1937 年:英国剑桥大学的Alan M.Turing(1912 ~1954 年)出版了他的论文 ,并提出了被后人称之为“图灵机”的数学模型。 1937 年:Bell 试验室的George Stibitz 展示了用继电器表示二进制的装置。尽管仅仅是个展示品,但却是第一台二进制电子计算机。 1940 年1 月:Bell 实验室的Samuel Williams 和Stibitz 制造成功了一个能进行复杂运算的计算机。该机器大量使用了继电器,并借鉴了一些电话技术,采用了先进的编码技术。 1941 年夏季:Atanasoff 和学生Berry 完成了能解线性代数方程的计算机,取名叫“ABC ”(Atanasoff-Berry Computer),用电容作存储器 ,用穿孔卡片作辅助存储器 ,那些孔实际上是“烧”上去的,时钟频率是60Hz,完成一次加法运算用时一秒。 1943 年1 月:Mark I 自动顺序控制计算机在美国研制成功。整个机器有51 英尺长 、5 吨重 、75万个零部件。该机使用了3304 个继电器 ,60 个开关作为机械只读存储器 。程序存储在纸带上 ,数据可以来自纸带或卡片阅读器。Mark I 被用来为美国海军计算弹道火力表。 1943 年9 月:Williams 和Stibitz 完成了“Relay Interpolator ”,后来命名为“ModelⅡ Re-lay Calculator ”的计算机。这是一台可编程计算机,同样使用纸带输入程序和数据。它运行更可靠,每个数用7 个继电器表示,可进行浮点运算。 1946 年:ENIAC(Electronic Numerical Integrator And Computer)诞生 ,这是第一台真正意义上的数字电子计算机。开始研制于1943 年,完成于1946 年,负责人是John W.Mauchly 和J.Presper Eckert,重30 吨,用了18000 个电子管,功率25 千瓦,主要用于计算弹道和氢弹的研制。 三、晶体管计算机的发展 真空管时代的计算机尽管已经步入了现代计算机的范畴,但因其体积大、能耗高、故障多、价格贵,从而制约了它的普及和应用。直到晶体管被发明出来,电子计算机才找到了腾飞的起点。 1947 年:Bell 实验室的William B.Shockley 、 John Bardeen 和Walter H.Brattain 发明了晶体管,开辟了电子时代新纪元。 1949 年:剑桥大学的Wilkes 和他的小组制成了一台可以存储程序的计算机,输入输出设备仍是纸带。 1949 年:EDVAC(Electronic Discrete Variable Automatic Computer——电子离散变量自动计算机)——第一台使用磁带的计算机。这是一个突破,可以多次在磁带上存储程序。这台机器是John von Neumann 提议建造的。 1950 年:日本东京帝国大学的Yoshiro Nakamats 发明了软磁盘 ,其销售权由IBM公司获得 。由此开创了存储时代的新纪元。 1951 年:Grace Murray Hopper 完成了高级语言编译器。 1951 年:UNIVAC-1 ——第一台商用计算机系统诞生,设计者是J.Presper Eckert 和JohnMauchly 。被美国人口普查部门用于人口普查,标志着计算机进入了商业应用时代。 1953 年:磁芯存储器被开发出来。 1954 年:IBM 的John Backus 和他的研究小组开始开发FORTRAN(FORmula TRANslation) ,1957 年完成。这是一种适合科学研究使用的计算机高级语言。 1957 年:IBM 开发成功第一台点阵式打印机。 四、集成电路为现代计算机铺平道路 尽管晶体管的采用大大缩小了计算机的体积、降低了价格 、减少了故障 ,但离用户的实际要求仍相距甚远,而且各行业对计算机也产生了较大的需求,生产性能更强、重量更轻、价格更 低的机器成了当务之急。集成电路的发明解决了这个问题。高集成度不仅使计算机的体积得以减小,也使速度加快、故障减少。从此,人们开始制造革命性的微处理器。 1958 年9 月12 日:在Robert Noyce(Intel 公司创始人)的领导下,集成电路诞生 ,不久又发明了微处理器。但因为在发明微处理器时借鉴了日本公司的技术,所以日本对其专利不承认,因为日本没有得到应有的利益。过了30 年,日本才承认,这样日本公司可以从中得到一部分利润。但到2001 年,这个专利就失效了。 1959 年:Grace Murray Hopper 开始开发COBOL(COmmon Business-Oriented Language)语言 ,完成于1961 年。 1960 年:ALGOL ——第一个结构化程序设计语言推出。 1961 年:IBM 的Kennth Iverson 推出APL 编程语言。 1963 年:DEC 公司推出第一台小型计算机——PDP-8 。 1964 年:IBM 发布PL/1 编程语言。 1964 年:发布IBM 360 首套系列兼容机。 1964 年:DEC 发布PDB-8 小型计算机。 1965 年:摩尔定律发表,处理器的晶体管数量每18 个月增加一倍,价格下降一半。 1965 年:Lofti Zadeh 创立模糊逻辑,用来处理近似值问题。 1965 年:Thomas E.Kurtz 和John Kemeny 完成BASIC(Beginner ’s All-purpose SymbolicIn-struction Code)语言的开发。特别适合计算机教育和初学者使用,得以广泛推广。 1965 年:Douglas Englebart 提出鼠标器的设想,但没有进一步研究,直到1983年才被苹果电脑公司大量采用。 1965 年:第一台超级计算机CD6600 开发成功。 1967 年:Niklaus Wirth 开始开发PASCAL 语言,1971 年完成。 1968 年:Robert Noyce 和他的几个朋友创办了Intel 公司。 1968 年:Seymour Paper 和他的研究小组在MIT 开发了LOGO 语言。 1969 年:ARPANet(Advanced Research Projects Agency Network)计划开始启动,这是现代Internet 的雏形。 1969 年4 月7 日:第一个网络协议标准RFC 推出。 1970 年:第一块RAM 芯片由Intel 推出,容量1KB 。 1970 年:Ken Thomson 和Dennis Ritchie 开始开发UNIX 操作系统。 1970 年:Forth 编程语言开发完成。 1970 年:Internet 的雏形ARPANet 基本完成,开始向非军用部门开放。 1971 年11 月15 日:Marcian E.Hoff 在Intel 公司开发成功第一块微处理器4004,含2300个晶体管,字长为4 位,时钟频率为108KHz,每秒执行6 万条指令。 1972 年:1972 年以后的计算机习惯上被称为第四代计算机。基于大规模集成电路及后来的超大规模集成电路。这一时期的计算机功能更强,体积更小。此时人们开始怀疑计算机能否继续缩小,特别是发热量问题能否解决。同时,人们开始探讨第五代计算机的开发。 1972 年:C 语言开发完成。其主要设计者是UNIX 系统的开发者之一Dennis Ritche。这是一个非常强大的语言,特别受人喜爱。 1972 年:Hewlett-Packard 发明了第一个手持计算器。 1972 年4 月1 日:Intel 推出8008 微处理器。 1972 年:ARPANet 开始走向世界,Internet 革命拉开序幕。 1973 年:街机游戏Pong 发布,得到广泛欢迎。发明者是Nolan Bushnell(Atari 的创立者)。 1974 年:第一个具有并行计算机体系结构的CLIP-4 推出。 五、当代计算机技术渐入辉煌 在此之前,应该说计算机技术还是主要集中于大型机和小型机领域的发展。随着超大规模集成电路和微处理器技术的进步,计算机进入寻常百姓家的技术障碍逐渐被突破。特别是在Intel公司发布了其面向个人用户的微处理器8080 之后,这一浪潮终于汹涌澎湃起来,同时也催生出了一大批信息时代的弄潮儿,如Stephen Jobs(史缔芬�6�1乔布斯)、Bill Gates(比尔�6�1盖茨)等 ,至今他们对整个计算机产业的发展还起着举足轻重的作用。在此时段,互联网技术和多媒体技术也得到了空前的应用与发展,计算机真正开始改变我们的生活。 1974 年4 月1 日:Intel 发布其8 位微处理器芯片8080 。 1975 年:Bill Gates 和Paul Allen 完成了第一个在MIT(麻省理工学院)的Altair 计算机上运行的BASIC 程序。 1975 年:Bill Gates 和Paul Allen 创办Microsoft 公司(现已成为全球最大、最成功的软件公司)。3 年后就收入50 万美元,员工增加到15 人。1992 年达28 亿美元,1 万名雇员。1981年Microsoft为IBM 的PC 机开发操作系统,从此奠定了在计算机软件领域的领导地位。 1976 年:Stephen Wozinak 和Stephen Jobs 创办苹果计算机公司,并推出其Apple Ⅰ计算机。 1978 年6 月8 日:Intel 发布其16 位微处理器8086 。1979 年6 月又推出准16 位的8088 来 满足市场对低价处理器的需要,并被IBM 的第一代PC 机所采用。该处理器的时钟频率为4.77MHz 、8MHz和10MHz,大约有300 条指令,集成了29000 个晶体管。 1979 年:低密软磁盘诞生。 1979 年:IBM 公司眼看个人计算机市场被苹果等电脑公司占有,决定开发自己的个人计算机 。为了尽快推出自己的产品,IBM 将大量工作交给第三方来完成(其中微软公司就承担了操作系统的开发工作 ,这同时也为微软后来的崛起奠定了基础),于1981 年8 月12 日推出了IBM- PC 。 1980 年:“只要有1 兆内存就足够DOS 尽情表演了”,微软公司开发DOS 初期时说 。今天来听这句话有何感想呢? 1981 年:Xerox 开始致力于图形用户界面、图标、菜单和定位设备(如鼠标)的研制 。结果研究成果为苹果所借鉴,而苹果电脑公司后来又指控微软剽窃了他们的设计,开发了Windows 系列软件。 1981 年8 月12 日:MS-DOS 1.0 和PC-DOS 1.0 发布。Microsoft 受IBM 的委托开发DOS 操作系统,他们从Tim Paterson 那里购买了一个叫86-DOS 的程序并加以改进。由IBM 销售的版本叫PC-DOS,由Microsoft 销售的叫MS-DOS 。Microsoft 与IBM 的合作一直到1991 年的DOS 5.0 为止。最初的DOS 1.0非常简陋,每张盘上只有一个根目录,不支持子目录,直到1983 年3 月的2.0 版才有所改观。MS-DOS在1995 年以前一直是与IBM-PC 兼容的操作系统,Windows 95 推出并迅速占领市场之后,其最后一个版本命名为DOS 7.0 。 1982 年:基于TCP/IP 协议的Internet 初具规模。 1982 年2 月:80286 发布,时钟频率提高到20MHz 、增加了保护模式、可访问16MB 内存、支持1GB以上的虚拟内存、每秒执行270 万条指令、集成了13.4 万个晶体管。 1983 年春季:IBM XT 机发布,增加了10MB 硬盘、128KB 内存、一个软驱、单色显示器、一台打印机、可以增加一个8087 数字协处理器。当时的价格为5000 美元。 1983 年3 月:MS-DOS 2.0 和PC-DOS 2.0 增加了类似UNIX 分层目录的管理形式。 1984 年:DNS(Domain Name Server)域名服务器发布,互联网上有1000 多台主机运行。 1984 年底:Compaq 开始开发IDE 接口,能以更快的速度传输数据,并被许多同行采纳,后来在此基础上开发出了性能更好的EIDE 接口。 1985 年:Philips 和SONY 合作推出CD-ROM 驱动器。 1985 年10 月17 日:80386 DX 推出 。时钟频率达到33MHz 、可寻址1GB 内存 、每秒可执行600万条指令、集成了275000 个晶体管。 1985 年11 月:Microsoft Windows 发布。该操作系统需要DOS 的支持,类似苹果机的操作界面 ,以致被苹果控告,该诉讼到1997 年8 月才终止。 1985 年12 月:MS-DOS 3.2 和PC-DOS 3.2 发布。这是第一个支持3.5 英寸磁盘的系统,但只支持到720KB,3.3 版才支持1.44MB 。 1987 年:Microsoft Windows 2.0 发布。 1988 年:EISA 标准建立。 1989 年:欧洲物理粒子研究所的Tim Berners-Lee 创立World Wide Web 雏形。通过超文本链接,新手也可以轻松上网浏览。这大大促进了Internet 的发展。 1989 年3 月:EIDE 标准确立,可以支持超过528MB 的硬盘,能达到33.3MB/s 的传输速度,并被许多CD-ROM 所采用。 1989 年4 月10 日:80486 DX 发布。该处理器集成了120 万个晶体管,其后继型号的时钟频率达到100MHz 。 1989 年11 月:Sound Blaster Card(声卡)发布。 1990 年5 月22 日:微软发布Windows 3.0,兼容MS-DOS 模式。 1990 年11 月:第一代MPC(多媒体个人电脑标准)发布。该标准要求处理器至少为80286/12MHz(后来增加到80386SX/16MHz)及一个光驱,至少150KB/sec 的传输率。 1991 年:ISA 标准发布。 1991 年6 月:MS-DOS 5.0 和PC-DOS 5.0 发布。为了促进OS/2 的发展,Bill Gates 说DOS5.0 是 DOS 终结者,今后将不再花精力于此。该版本突破了640KB 的基本内存限制。这个版本也标志着微软与IBM 在DOS 上合作的终结。 1992 年:Windows NT 发布,可寻址2GB 内存。 1992 年4 月:Windows 3.1 发布。 1993 年:Internet 开始商业化运行。 1993 年:经典游戏Doom 发布。 1993 年3 月22 日:Pentium 发布,该处理器集成了300 多万个晶体管、早期版本的核心频率为60 ~66MHz 、每秒钟执行1 亿条指令。 1993 年5 月:MPC 标准2 发布,要求CD-ROM 传输率达到300KB/s,在320 ×240 的窗口中每秒播放15 帧图像。 1994 年3 月7 日:Intel 发布90 ~100MHz Pentium 处理器。 1994 年:Netscape 1.0 浏览器发布。 1994 年:着名的即时战略游戏Command&Conquer(命令与征服)发布。 1995 年3 月27 日:Intel 发布120MHz 的Pentium 处理器。 1995 年6 月1 日:Intel 发布133MHz 的Pentium 处理器。 1995 年8 月23 日:纯32 位的多任务操作系统Windows 95 发布。该操作系统大大不同于以前的版本 ,完全脱离MS-DOS,但为照顾用户习惯还保留了DOS 模式。Windows 95 取得了巨大成功。 1995 年11 月1 日:Pentium Pro 发布,主频可达200MHz 、每秒可执行4.4 亿条指令、集成了550万个晶体管。 1995 年12 月:Netscape 发布其javaScript 。 1996 年1 月:Netscape Navigator 2.0 发布。这是第一个支持JavaScript 的浏览器。 1996 年1 月4 日:Intel 发布150 ~166MHz 的Pentium 处理器,集成了310 ~330 万个晶体管。 1996 年:Windows 95 OSR2 发布,修正了部分BUG,扩充了部分功能。 1997 年:Heft Auto 、Quake 2 和Blade Runner 等着名游戏软件发布,并带动3D图形加速卡迅速崛起。 1997 年1 月8 日:Intel 发布Pentium MMX CPU,处理器的游戏和多媒体功能得到增强。 1997 年4 月:IBM 的深蓝(Deep Blue)计算机战胜人类国际象棋世界冠军卡斯帕罗夫。 1997 年5 月7 日:Intel 发布Pentium Ⅱ,增加了更多的指令和Cache 。 1997 年6 月2 日:Intel 发布233MHz Pentium MMX 。 1998 年2 月:Intel 发布333MHz Pentium Ⅱ处理器,采用0.25 μm 工艺制造,在速度提升的同时减少了发热量。 1998 年6 月25 日:Microsoft 发布Windows 98,一些人企图肢解微软,微软回击说这会伤害美国的国家利益。 1999 年1 月25 日:Linux Kernel 2.2.0 发布,人们对其寄予厚望。 1999 年2 月22 日:AMD 公司发布K6-3 400MHz 处理器。 1999 年7 月:Pentium Ⅲ发布,最初时钟频率在450MHz 以上,总线速度在100MHz 以上,采用0.25μm 工艺制造,支持SSE 多媒体指令集,集成有512KB 以上的二级缓存。 1999 年10 月25 日:代号为Coppermine(铜矿)的Pentium Ⅲ处理器发布。采用0.18 μm 工艺制造的Coppermine 芯片内核尺寸进一步缩小,虽然内部集成了256KB 全速On-Die L2 Cache ,内建2800万个晶体管,但其尺寸却只有106 平方毫米。 2000 年3 月:Intel 发布代号为“Coppermine 128 ”的新一代的Celeron 处理器。新款Celeron 与老Celeron 处理器最显着的区别就在于采用了与新P Ⅲ处理器相同的Coppermine核心及同样的FC-PGA封装方式,同时支持SSE 多媒体扩展指令集。 2000 年4 月27 日:AMD 宣布正式推出Duron 作为其新款廉价处理器的商标,并以此准备在低端向Intel 发起更大的冲击,同时,面向高端的ThunderBird 也在其后的一个月间发布。 2000 年7 月:AMD 领先Intel 发布了1GHz 的Athlon 处理器,随后又发布了1.2GMHz Athlon处理器。 2000 年7 月:Intel 发布研发代号为Willamette 的Pentium 4 处理器,管脚为423 或478根,其芯片内部集成了256KB 二级缓存,外频为400MHz,采用0.18 μm 工艺制造 ,使用SSE2指令集,并整合了散热器,其主频从1.4GHz 起步。 2001 年5 月14 日,AMD 发布用于笔记本电脑的Athlon 4 处理器。该处理器采用0.18 微米工艺造,前端总线频率为200MHz,有256KB 二级缓存和128KB 一级缓存。 2001 年5 月21 日,VIA 发布C3 出处理器 。该处理器采用 0.15 微米工艺制造(处理器核心仅为2mm 2 ), 包括192KB 全速缓存(128KB 一级缓存、64KB 二级缓存),并采用Socket370 接口。支持133MHz 前端总线频率和3DNow!、MMX 多媒体指令集。 2001 年8 月15 日,VIA 宣布其兼容DDR 和SDRAM 内存的P4 芯片组P4X266 将大量出货。该芯片组的内存带宽达到4GB,是i850 的两倍。 2001 年8 月27 日,Intel 发布主频高达2GHz 的P4 处理器。每千片的批发价为562 美元。
B. 编程——网络
vivado视频免费下载
链接:https://pan..com/s/1KeaJ2Z45qT5_v9aEFQpLNQ
java视频|53.mp4|52_定义输入输出格式.mp4|51_综合练习(二).mp4|50_综合练习(一).mp4|49_开发工具之Eclipse(四).mp4|48_开发工具之Eclipse(三).mp4|47_开发工具之Eclipse(二).mp4|46_开发工具之Eclipse(一).mp4
C. 蓝牙解码编译器哪个好
SBC:全称叫做 Subband Codec(次频带编码),这种技术出现在蓝牙技术发展的早期,实现了我们之前说的“可以听”的阶段,但就技术本身而言,其是一种“有损编码”,考虑到其传输带宽小,数据进行了二次压缩,音质上损失也相当大,这种标准下单声道最大理论速率是 320kbit/s,实际上 44.1kHz 下双声道最大仅为 328kbit/s,仅仅只能满足听那些有损压缩的小体积音频文件(MP3/AAC)等。
AAC:从编解码器的角度说,AAC 可以称作是 MP3 的升级版,其实这种高级编解码模式已经成为目前音频 / 视频文件的默认行业标准,而苹果的则是该标准的最大用户,相对之前的 SBC,AAC 音质要更好一些,也是目前绝大多数蓝牙耳机所支持的编解码器。
aptX 的技术实现优势
aptX:该技术相对 AAC 而言则更上一个台阶,如果 SBC / AAC 是我们所说的 MP3 音乐,那么 aptX 技术则是蓝牙无线音频传输第一次能达到 CD 音质:低延迟、充错性好,频响范围大(最高覆盖到 22Khz),采样率也可以达到更高的 48 KHz。但要说到缺点,因为属于高通的专利,所以授权费用是大面积普及不小的阻碍。
LDAC 的技术优势
至于 LDAC,其本身来自与音频技术起家的索尼,而最初发展的目的则是配合索尼自家的 Hi-Res 音频产品的发展,从索尼官方的 LDAC 技术网站中,LDAC 相比其他三种技术有着不小的优势。
首先,LDAC 不会将高码率的音频文件进行降低码率处理,相比 SBC 技术,LDAC 的最高传输速率可以达到 990 kbps,可以支持无损压缩的 FLAC 全码率播放。
其次从数据传输量而言,LDAC 几乎达到了 SBC 的三倍,支持的音频文件质量能达到 96kHz/24bit 的精度,换言之传输的音频质量甚至可以超过 CD 质量。所以理论上来说,LDAC 的传输质量甚至优于高通的 aptX 解决方案的。
而在实际运用上,LDAC 也分三种标准,即质量有限模式,标准模式以及连接优先模式,而传输的数据质量也从 990kbps、660kbps: 到 330kbps 逐次递减,在实际运用上,标准模式可以平衡质量以及连接速率,当然从无线音乐欣赏角度来看也是最合适的。
D. 为什么开发出了这么多的编程语言
一个简单的解释:不同的领域有不同的需求!于是为了适应不同的应用场景,一个一个的编程语言诞生了。
对于科学和工程计算领域,要大量的处理数据的计算,如矩阵的计算,于是FORTRAN语言,就很好的适应了这一点;
对于数据需要能够很好的查询、修改等操作,可能SQL语言就是一个不错的语言;
对于一些底层操作的需求,c和c++可能就很好的能够适应这一点……
【译文】程序语言简史(伪)http://www.soimort.org/posts/160/
1801 - Joseph Marie Jacquard用打孔卡为一台织布机编写指令,在挂毯上织出了“hello, world”字样。当时的reddit网友对这项工作的反响并不热烈,因为它既缺少尾递归调用,又不支持并发,而且甚至都没有注意在拼写时恰当地区分大小写。
Jacquard织布机是第一台可进行程序控制的织布机。用打孔卡进行编程的概念,直到电子计算机被发明出来之后仍然被广泛运用。
最早的Hello World程序(出自K&R C)打印的是全小写的字符串:"hello, world"。
在许多英文技术社区里,不正确地使用大小写发贴会被视作是小白的行为。(如把“python”拼作“python”,把“FreeBSD”拼作“freebsd”,把“Qt”拼作“QT”)
reddit / Hacker News的月经帖标题:“.*: a new .*-based .* programming language”。底下常见的回帖形式:“它支持并发吗?”“没有尾调用优化果断差评。”“现在的编程语言已经足够多了,为什么我们还需要更多的语言?”……
1842 - Ada Lovelace写了世界上第一个程序。她的努力只遇到了一点点小小的麻烦,那就是:实际上并没有任何计算机能够用来运行她的程序。后来的企业架构师们重新吸收了她的这个技能,用来学习如何更好地使用UML进行编程。
Ada Lovelace为Charles Babbage的分析机写了一个计算伯努利数的算法实现,因此被后世公认为是世界上第一个程序员。实际上,分析机由于其设计思想过于先进,在当时根本没有被制造出来。(Babbage的分析机一般被认为是现代电子通用计算机的先驱)
讽刺现在的某些“软件架构师”顶多只会纸上谈兵地画画UML。
1936 - Alan Turing发明了世间一切程序语言的最终形态,但很快他就被英国军情六处“请”去当007了,以至于他根本来不及为这些语言申请专利。
与通用图灵机(Universal Turing machine)等价的语言被称为图灵完备的(Turing completeness),它定义了“什么样的语言可以被称作是程序语言”。
二战期间Turing曾秘密地为英国军方工作,破解德军的Enigma密码机,并在战后被授予大英帝国勋章。但这项事实直到多年以后才向公众公开。
1936 - Alonzo Church同时也发明了世间一切程序语言的最终形态,甚至做得更好。但他的λ演算被绝大部分人忽视了,因为它与c语言“不够像”。尽管存在着这样的批评,但事实上,C在当时还没有被发明出来。
Church是Turing在Princeton的博士生导师,他在λ演算方面的工作先于Turing指出了不存在一个对可判定性问题的通用解法,这后来证明和Turing针对停机问题提出的图灵机模型是等价的。即着名的Church-Turing论题。
说Church“甚至做得更好”,因为λ演算为后世所有的函数式语言提供了理论基础。
现在一种常见的关于函数式编程的批评就是:“它们与C语言不够像”。
1940年代 - 一些直接采用布线和开关来进行程序控制的“计算机”出现了。工程师们当时这么做,据说是为了避开“用空格还是用制表符缩进”这样的论战。
据说当时负责设计ENIAC的工程师中间曾经发生过这样的争论:
空格比制表符好。
制表符比空格好。
4个空格比8个空格好。
什么?用2个空格的统统烧死。
关于这台具有里程碑意义的人类史上第一台电子计算机ENIAC上应该预装何种编辑器,工程师们还发生过这样的争吵:
Vim比Emacs好!
Emacs比Vim好!
强烈推荐Sublime Text。
你丫用编辑器的都是找虐,IDE才是王道。
没错,要用就用世界上最好的公司微软开发出来的世界上最好的IDE:Visual Studio。
我早就看透了无谓的编辑器论战什么的了,我要告诉楼上吵架的,你们全都是傻逼!
最后,工程师们一致决定使用布线和开关来为他们即将发明的计算机进行编程,机智地避开了所有这些无谓的争吵,最终齐心协力创造出了人类历史上第一台电子计算机:ENIAC。(鼓掌
(图:两位ENIAC程序员在运用敏捷开发方法进行愉快的结对编程。“自从抛弃伴随我多年的Emacs和HHKB Pro、改用布线和开关进行编程之后,我的左手小指麻痹奇迹般地痊愈了。”其中一位接受采访时如是说。另一位则表示:“新的编程方式让曾经专注颈椎病20年的我得到了彻底的康复,不用再整天盯着显示屏,身心同时得到了极大的放松,值得大力推广!”)
1957 - John Backus和IBM发明了FORTRAN语言。关于IBM或FORTRAN并没有什么特别好笑的地方。除了,写FORTRAN程序的时候不系蓝领带将被编译器视作是一个syntax error。
蓝领带、白衬衫、深色西装似乎是IBM公司20世纪经典的dress code。
早期FORTRAN(FORTRAN 77)对程序书写格式的要求那是相当严格。(例如,蛋疼的固定格式缩进)
1958 - John McCarthy和Paul Graham发明了LISP。由于冷战期间的战略括号资源储备所造成的巨大成本,LISP从未流行过。尽管欠缺足够的流行度,LISP(现在叫做“Lisp”,有时叫“Arc”)仍然被视作一门有影响力的语言,在关键的算法思想诸如递归(recursion)和提升逼格(condescension)上尤为典范。
(原文的脚注:
幸运的是对于计算机科学来说,花括号和尖括号的供应尚充足。
“关键的算法思想”这一说法来自于Verity Stob的Catch as catch can。)
战略括号储备:据信是因为克格勃对于他们费尽千辛万苦搜集到的程序片段全都是括号感到极端愤怒,于是封锁了世界各地的括号矿产资源,导致白宫方面不得不加强战略浓缩括号的储备。(误
LISP发明的那一年Paul Graham其实还没有出生。据说是因为某本叫做《Haste and Waste》的伪程装黑圣典实在太有名了,以至于许多编程小白们把写这本书的传奇人物同Lisp之间画上了等号。
提升逼格确实是一种与递归调用同样关键的算法思想。嗯,你懂的。
1959 - 在输掉了和L. Ron Hubbard之间的一场打赌之后,Grace Hopper和其他几个抖S发明了所谓的“面向Boilerplate的全大写化语言(Capitalization Of Boilerplate Oriented Language,COBOL)”。多年以后,由于一些被误导的、性别歧视主义者对Adm. Hopper关于COBOL的工作的报复,在Ruby技术会议上不时会看到一些厌女主义乃至仇视女性的材料出现。
L. Ron Hubbard是山达基教(Scientology)的创始人,二战期间曾与Grace Hopper同样供职于美国海军。(尚不清楚这两人之间有无其他联系)
COBOL语言以代码极其冗长和通篇大写字母的书写风格而闻名。
Adm. Hopper:Grace Murray Hopper女士的军衔是Rear Admiral Lower Half,即美国海军准将。
Ruby技术会议与性别歧视:在09年的GoGaRuCo会议上,有人做了一场题为“CouchDB perform like a pr0n star”的报告,幻灯片演示中使用了大量色情材料,引起了在场的少数女性观众的极大不适(“This was a national conference, not a gathering of teenager boys in a smelly upstairs bedroom!”)。会后,DHH(Ruby on Rails的作者)发推表示“it's "absolutely" appropriate to use porn in a business presentation”。关于其他更多技术会议上出现的性别歧视事件,参见这里。
1964 - John Kemeny和Thomas Kurtz创造了BASIC,一个为非计算机科学家设计的非结构化的程序语言。
1965 - Kemeny和Kurtz两人goto到了1964。
调侃BASIC语言对行号和goto的无节制滥用。
1970 - Guy Steele和Gerald Sussman创造了Scheme。他们的工作导致了一系列以《Lambda之究极(Lambda the Ultimate)……》为标题开头的论文发表,并在《Lambda之究极厨房神器》这一篇中达到了最高潮。以这篇论文为基础,开始了一个长年累月的、收视率究极失败的晚间电视购物节目。Lambda们因为其概念相对难以理解而被大众所忽视,直到未来的某一天,Java语言终于让它们变得有名了起来。通过不包含它们这件事情。
Lambda之究极神器系列:(Lambda之究极命令式编程、Lambda之究极宣告式编程、Lambda之究极GOTO语句、Lambda之究极Opcode)
Guy Lewis Steele, Jr. and Gerald Jay Sussman. "Lambda: The Ultimate Imperative"). MIT AI Lab. AI Lab Memo AIM-353. March 1976.
Guy Lewis Steele, Jr.. "Lambda: The Ultimate Declarative". MIT AI Lab. AI Lab Memo AIM-379. November 1976.
Guy Lewis Steele, Jr.. "Debunking the 'Expensive Procere Call' Myth, or, Procere Call Implementations Considered Harmful, or, Lambda: The Ultimate GOTO". MIT AI Lab. AI Lab Memo AIM-443. October 1977.
Guy Lewis Steele, Jr. and Gerald Jay Sussman. "Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode". MIT AI Lab. AI Lab Memo AIM-514. March 1979.
后来大概有人觉得每次都投一篇正式的paper太麻烦了,于是干脆专门开了一个博客,名字就叫做Lambda the Ultimate。这样他们将来要发《Lambda之究极割草机》《Lambda之究极厕所皮拔子》这样的营销广告就更加方便了。
长年累月的收视率究极失败的晚间电视购物节目:也许是在暗讽MIT专注用SICP作为教给CS学生的第一门编程课20余年。
众Java程序员:听说Java 8要开始支持lambda了,想来Java真是极先进的……等一下,我先看看lambda是个啥玩意?
于是lambda这个“新鲜货”就一下子在主流业界变得流行起来了。
1970 - Niklaus Wirth创造了Pascal,一个过程式的语言。很快就有人开始声讨Pascal,因为它使用了类似“x := x + y”这样的语法,而不是更为人熟知的类C语法“x = x + y”。尽管存在着这样的批评,而事实上当时C还没有被发明出来。
1972 - Dennis Ritchie发明了一把射击时能同时向前和向后两个方向发射子弹的绝世好枪。但他对此发明造成的致死和终身残疾数量感到还不够满意,所以他又发明了C语言和Unix。
翻译君:……
1972 - Alain Colmerauer设计了逻辑编程语言Prolog。他的目标是创造一个具有两岁小孩智商的程序语言。为了证明他成功达到了这个目标,他展示了一个Prolog程序,它对于每条查询都会机智地给出相同的回答:“No”。
Ask me anything!
?-
1973 - Robin Milner创造了ML,一个建立在M&M类型理论基础上的语言。由ML衍生而来的SML加上了一套形式语义的规范。当被要求给这个形式语义本身书写一套形式语义时,Milner的脑子爆掉了。其他ML家族的着名语言还包括OCaml,F#,和,Visual Basic。
SML的形式语义规范事实上被写成了这样一本书(SML'97):《The Definition Of Standard ML》。
ML明显是建立在H-M(Hindley–Milner)类型推断的基础上的,不太清楚原文所说的M&M类型理论是在吐槽神马……
Visual Basic近年来吸收了函数式编程里的不少东西(不知道是不是因为受到了F#影响的缘故)。最典型的是它具备和ML相似的类型推断。
1980 - Alan Kay创造了Smalltalk并发明了“面向对象”这个词。当被问到它的含义时,他回答道:“Smalltalk程序本身就是对象。”当被问到对象是由什么组成时,他回答到:“对象。”当再一次被问到这个问题时,他说“看,它从里到外都是对象。直到你抽出一只乌龟。”
Smalltalk的设计从很大程度上受到了Logo的影响。
1983 - 为了纪念伟大的先辈程序员Ada Lovelace那能够写出永远也无法被执行的代码的彪悍技能,Jean Ichbiah和美国国防部创造了Ada语言。尽管缺乏证据显示有任何重要的Ada程序曾经被完成过,历史学家仍然确信Ada是个成功的公益项目,它让数以千计的国防承包商免于沦落为与黑帮为伍。
Ada曾经是美国国防部指定的嵌入式计算机系统唯一开发语言,在其研发上耗资巨大。(国防承包商们于是不用靠贩卖军火给黑帮来维持生计了)
虽然有充分的证据显示Ada的整型范围溢出检查失败导致弄坏了欧空局的一枚Ariane 5运载火箭,不过美国国防部发言人对此表示:关我P事。
1983 - Bjarne Stroustrup把他所听说过的一切都试图嫁接到C上,创造出了C++。最后得到的语言是如此地复杂,以至于程序必须被送到未来去让“天网”人工智能进行编译。编译时间难以容忍。天网开展这项服务的动机仍然不为人知,但来自未来的发言人说道:“没什么好担心的,宝贝。”带着一口奥地利腔的机械口音。有一些来自坊间的推测,所谓的天网只不过是个自命不凡的缓冲区溢出而已。
这篇文章写出来的时候,一个被称作C++0x的新标准还遥遥无期。许多编译器对它的支持似乎永远停留在“partial”阶段。
请自行脑补终结者里的T-800……
无论什么都改变不了C/C++是个经典的“缓冲区溢出语言”的事实。
1986 - Brad Cox和Tom Love创造了Objective-C,宣称“该语言完美地结合了C的内存安全性与Smalltalk的神奇效率”。现在的历史学家怀疑这两人其实是诵读障碍症患者。
“C的内存安全性十分好”。
Smalltalk编译出来的程序以低效缓慢着称。
1987 - Larry Wall在电脑前打了个盹,Larry Wall的脑门子压到了键盘上。醒来之后,Larry Wall深信 ,在Larry Wall的显示器上出现的神秘字符串并非是随机的,那是某种编程语言之程序样例的神谕。那必是上帝要他的先知,Larry Wall,去设计的。Perl语言就此诞生了。
1990 - 一个由Simon Peyton-Jones、Paul Hudak、Philip Wadler、Ashton Kutcher和善待动物组织(PETA)组成的委员会创造了Haskell,一种纯函数式的、非严求值的语言。Haskell由于使用了Monad这种较费解的概念来控制副作用而遭到了一些批评意见。Wadler试图平息这些质疑,他解释说:“一个单子(Monad)说白了不过就是自函子范畴上的一个幺半群而已,这有什么难以理解的?”
素食主义鼓吹者:为了获取食物而不必要地杀死动物是邪恶的;“纯函数式编程”鼓吹者:为了编程而引入不必要的副作用是邪恶的。
(科普帖)自函子说穿了就是把一个范畴映射到自身的函子,自函子范畴说穿了就是从小范畴映射到自身的函子所构成的以自函子为对象以自然变换为态射的范畴,幺半群说穿了就是只有单个对象的范畴,给定了一个幺半群则可构造出一个仅有单个对象的小范畴使其态射由幺半群的元素给出而合成由幺半群的运算给出,而单子说穿了就是自函子范畴上的这样一个幺半群。(这都不理解么亲连这种最基本的概念都不理解还学什么编程!)
又:“A monad is a monoid in the category of endofunctors(一个单子是自函子范畴上的一个幺半群)”这句话的原出处据信是Mac Lane的这本书:
1991 - 荷兰程序员Guido van Rossum为了一次神秘的手术而进行了一次阿根廷之旅。回来后他带着一个巨大的颅疤,发明了Python,而被数以军团计的追随者们加冕为“终生大独裁者”,并向全世界宣布“要办到一件事情,只可有唯一的一种方法!”。整个波兰陷入了恐慌。
BDFL(Benevolent Dictator for Life):开源社区一种流行的说法,“仁慈的”终生大独裁者。这个说法最早指的就是Guido van Rossum。
希特勒在提出建立“纯正的雅利安人国家”“统一的大德意志帝国”并实现了德奥合并之后,翌年便入侵了波兰,引发了第二次世界大战。“我一个人征服了整个欧洲!”(感觉好棒好棒的)
1995 - 在家门口附近的一个意大利饭馆用餐时,Rasmus Lerdorf意识到他吃的那盘意面正好是一个用来理解WWW万维网的极好模型,而所有的Web应用都应该仿照它们的媒介那样去做。在他的餐巾的背后,他设计出了着名的“可编程超链接Pasta(Programmable Hyperlinked Pasta,PHP)”语言。PHP的文档至今仍然保留在那片餐巾上。
PHP最显着的特点就是:代码是可以直接嵌在HTML文档中的。
1995 - 松本“Mad Matz”行弘创造出了Ruby语言,用来辟谣一些意味不明的、有关澳洲将会变成一片由莫霍克族战士和Tina Turner统治的荒漠的末世预言。该语言后来被它的真正发明者David Heinemeier Hansson重新命名为Ruby on Rails。(关于某个叫松本行弘的人发明了一种叫做Ruby的语言这件事情从未发生过,最好在这篇文章的下一个版本中删掉。 - DHH表示)
最早关于Ruby的国际会议不是RubyConf,而是每年在澳大利亚举办的OSDConf。
这里应该是在吐槽Ruby的杀手级应用Ruby on Rails实在太有名了,以至于超越了原来的Ruby语言本身。
Matz并没有为“Ruby”这个名字注册商标——本着开源的黑客精神。
而DHH(RoR的作者)却把“Ruby on Rails”这个(包含了“Ruby”字样的)名称注册成了商标,并且阻止别人未经授权使用“Rails”这个名字。
(虽然抢注商标对开源来说未必是一件坏事情——Python基金会今年在欧洲还卷入了一场商标之争了不是)
假如你从来没听说过的话,莫霍克族战士据说是像这个样子的:
而Tina Turner看起来是这个样子的:
1995 - Brendan Eich读完了历史上所有在程序语言设计中曾经出现过的错误,自己又发明了一些更多的错误,然后用它们创造出了LiveScript。之后,为了紧跟Java语言的时髦潮流,它被重新命名为JavaScript。再然后,为了追随一种皮肤病的时髦潮流,这语言又被命名为ECMAScript。
WAT!Wat — Destroy All Software Talks
JavaScript和Java语言没有任何实质上的联系;就像ECMAScript和Eczema(湿疹)没有任何实质上的联系一样。(Brendan Eich曾表示:“ECMAScript was always an unwanted trade name that sounds like a skin disease.”)
但很多人觉得其实JavaScript设计中包含的错误还不够多,本着为程序语言的设计贡献更多错误这样的目的,他们群策群力创造出了更多的、JavaScript中未曾成功涵盖的错误。这儿有一个五花八门的列表,以供有志于为程序语言设计的谬误史添砖加瓦的人们参考。
1996 - James Gosling发明了Java。Java是一个相对繁冗的、带垃圾收集的、基于类的、静态类型的、单分派的面向对象语言,拥有单实现继承和多接口继承。Sun不遗余力地宣传着Java的独一无二不同凡响之处。
2001 - Anders Hejlsberg发明了C#。C#是一个相对繁冗的、带垃圾收集的、基于类的、静态类型的、单分派的面向对象语言,拥有单实现继承和多接口继承。微软不遗余力地宣传着C#的独一无二不同凡响之处。
2003 - 一个叫Martin Odersky的醉汉看见了好时瑞森花生酱杯的广告,展示了某个人的花生酱倒入另一个人的巧克力的场景,他忽然有了个点子。他创造了Scala,一种结合了面向对象和函数式编程的语言。这同时激怒了两个阵营的忠实信徒,他们立刻宣布要发动圣战烧死异教徒。
E. 是不是越高级的编程语言越简单,越低级的编程语言越难
5、Pascal语言
Pascal语言是由Nicolas Wirth在七十年代早期设计的,因为他对于FORTRAN和COBOL没有强制训练学生的结构化编程感到很失望,“空心粉式代码”变成了规范,而当时的语言又不反对它。Pascal被设计来强行使用结构化编程。最初的Pascal被严格设计成教学之用,最终,大量的拥护者促使它闯入了商业编程中。当Borland发布IBM PC上的 Turbo Pascal时,Pascal辉煌一时。集成的编辑器,闪电般的编译器加上低廉的价格使之变得不可抵抗,Pascal编程了为MS-DOS编写小程序的首选语言。
然而时日不久,C编译器变得更快,并具有优秀的内置编辑器和调试器。Pascal在1990年Windows开始流行时走到了尽头,Borland放弃了Pascal而把目光转向了为Windows 编写程序的C++。Turbo Pascal很快被人遗忘。
最后,在1996年,Borland发布了它的“Visual Basic杀手”— Delphi。它是一种快速的带华丽用户界面的 Pascal编译器。由于不懈努力,它很快赢得了一大群爱好者。
基本上,Pascal比C简单。虽然语法类似,它缺乏很多C有的简洁操作符。这既是好事又是坏事。虽然很难写出难以理解的“聪明”代码,它同时也使得一些低级操作,如位操作变得困难起来。
优点:易学、平台相关的运行(Dephi)非常好。
缺点:“世界潮流”面向对象的Pascal继承者(Mola、Oberon)尚未成功。语言标准不被编译器开发者认同。专利权。
移植性:很差。语言的功能由于平台的转变而转变,没有移植性工具包来处理平台相关的功能。
使用Pascal编写的游戏:几个。DirectX的Delphi组件使得游戏场所变大了。
资料:查找跟Delphi有关的资料,请访问:Inprise Delphi page。
6、Visual Basic
哈,BASIC。回到八十年代的石器时代,它是程序初学者的第一个语言。最初的BASIC形式,虽然易于学习,却是可怕的无组织化,它义无返顾的使用了GOTO充斥的“空心粉式代码”。当回忆起BASIC的行号和GOSUB命令,没有几个人能止住眼角的泪水。
快速前进到九十年代早期,虽然不是苹果公司所希望的巨人,HyperCard仍然是一个在Windows下无法比拟的吸引人的小型编程环境。Windows下的HyperCard克隆品如ToolBook又慢又笨又昂贵。为了与HyperCard一决高下,微软取得了一个小巧的名为Thunder编程环境的许可权,并把它作为Visual Basci 1.0发布,其用户界面在当时非常具有新意。这门语言虽然还叫做Basic(不再是全部大写),但更加结构化了,行号也被去除。实际上,这门语言与那些内置于TRS-80、Apple II及Atari里的旧的ROM BASIC相比,更像是带Basic风格动词的Pascal。
经过六个版本,Visual Basic变得非常漂亮。用户界面发生了许多变化,但依然保留着“把代码关联到用户界面”的主旨。这使得它在与即时编译结合时变成了一个快速原型的优异环境。
优点:整洁的编辑环境。易学、即时编译导致简单、迅速的原型。大量可用的插件。虽然有第三方的DirectX插件,DirectX 7已准备提供Visual Basic的支持。
缺点:程序很大,而且运行时需要几个巨大的运行时动态连接库。虽然表单型和对话框型的程序很容易完成,要编写好的图形程序却比较难。调用Windows的API程序非常笨拙,因为VB的数据结构没能很好的映射到C中。有OO功能,但却不是完全的面向对象。专利权。
移植性:非常差。因为Visual Basic是微软的产品,你自然就被局限在他们实现它的平台上。也就是说,你能得到的选择是:Windows,Windows或Widnows。当然,有一些工具能将VB程序转变成Java。
使用Visual Basic编写的游戏:一些。有很多使用VB编写的共享游戏,还有一些是商业性的。
资料:微软的VB页面有一些信息。
7、Java
Java是由Sun最初设计用于嵌入程序的可移植性“小C++”。在网页上运行小程序的想法着实吸引了不少人的目光,于是,这门语言迅速崛起。事实证明,Java不仅仅适于在网页上内嵌动画 — 它是一门极好的完全的软件编程的小语言。“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序。
虽然不是C++的正式续篇,Java从C++ 中借用了大量的语法。它丢弃了很多C++的复杂功能,从而形成一门紧凑而易学的语言。不像C++,Java强制面向对象编程,要在Java里写非面向对象的程序就像要在Pascal里写“空心粉式代码”一样困难。
优点:二进制码可移植到其他平台。程序可以在网页中运行。内含的类库非常标准且极其健壮。自动分配合垃圾回收避免程序中资源泄漏。网上数量巨大的代码例程。
缺点:使用一个“虚拟机”来运行可移植的字节码而非本地机器码,程序将比真正编译器慢。有很多技术(例如“即时”编译器)很大的提高了Java的速度,不过速度永远比不过机器码方案。早期的功能,如AWT没经过慎重考虑,虽然被正式废除,但为了保持向后兼容不得不保留。越高级的技术,造成处理低级的机器功能越困难,Sun为这门语言增加新的“受祝福”功能的速度实在太慢。
移植性:最好的,但仍未达到它本应达到的水平。低级代码具有非常高的可移植性,但是,很多UI及新功能在某些平台上不稳定。
使用Java编写的游戏:网页上有大量小的Applet,但仅有一些是商业性的。有几个商业游戏使用Java作为内部脚本语言。
资料:Sun的官方Java页面有一些好的信息。IBM也有一个非常好的Java页面。JavaLobby是一个关于Java新闻的最好去处。
8、创作工具
上面所提及的编程语言涵盖了大多数的商业游戏。但是也有一个例外,这个大游戏由于它的缺席而变得突出。
“神秘岛”。没错,卖得最好的商业游戏不是使用以上任何一门语言编的,虽然有人说“神秘岛”99%是使用 3D建模工具制作的,其根本的编程逻辑是在HyperCard里完成的。
多数创作工具有点像Visual Basic,只是它们工作在更高的层次上。大多数工具使用一些拖拉式的流程图来模拟流程控制。很多内置解释的程序语言,但是这些语言都无法像上面所说的单独的语言那样健壮。
优点:快速原型 — 如果你的游戏符合工具制作的主旨,你或许能使你的游戏跑得比使用其他语言快。在很多情况下,你可以创造一个不需要任何代码的简单游戏。使用插件程序,如Shockware及IconAuthor播放器,你可以在网页上发布很多创作工具生成的程序。
缺点:专利权,至于将增加什么功能,你将受到工具制造者的支配。你必须考虑这些工具是否能满足你游戏的需要,因为有很多事情是那些创作工具无法完成的。某些工具会产生臃肿得可怕的程序。
移植性:因为创作工具是具有专利权的,你的移植性以他们提供的功能息息相关。有些系统,如Director可以在几种平台上创作和运行,有些工具则在某一平台上创作,在多种平台上运行,还有的是仅能在单一平台上创作和运行。
使用创作工具编写的游戏:“神秘岛”和其他一些同类型的探险游戏。所有的Shockwave游戏都在网络上。
资料:Director、HyperCard、SuperCard、IconAuthor、Authorware。
9、结论
你可能希望得到一个关于“我该使用哪种语言”这个问题的更标准的结论。非常不幸,没有一个对所有应用程序都最佳的解决方案。C适于快而小的程序,但不支持面向对象的编程。C++完全支持面向对象,但是非常复杂。Visual Basic与Delphi易学,但不可移植且有专利权。Java有很多简洁的功能,但是慢。创作工具可以以最快的速度产生你的程序,但是仅对某一些类型的程序起作用。最好的方法是决定你要写什么样的游戏,并选择对你的游戏支持最好的语言。“试用三十天”的做法成为工业标准是件好事情。
F. 华为方舟编译器,是不是做的太过分了
安卓7.0之后,谷歌也意识到了程序占地方、开机慢的问题,怎么办?谷歌发现,人们使用一个程序,不可能用所有的功能。那么只编译一部分常用的是不是就效率高了呢?所以这时候其实是把JIT又拉回到安卓上来,并且安装的时候也不用全编译,直接装就是了,速度当然快了。这其实就是中间层、JIT、AOT一起来,并且根据用户的习惯,把它常用的程序的常用功能代码解释好了存起来,用户再用也飞快。
现在安卓手机的一大特色就是内存越来越大,6GB都是老人机的配置了。这除了程序大以外还有安卓的程序运行产生垃圾多有关系。那么清理垃圾呢?则需要暂停程序,也就会顿一下,即所谓的“卡”。华为方舟编译器则是利用程序多线程运行的特点。打个比方,您现在正在用的“中关村在线”这个APP用了AB两个线程,在华为的P30手机中,那么线程A运行的时候,B在清理垃圾,然后A线程清理垃圾的时候B线程在运行,程序运行不中断,垃圾处理不停,做到了又连贯、又节约系统资源。
G. 如何学习编程
学编程的注意点:
1、要确定好自己一定能学下去,不能是三分钟的热度,只是学个热闹,这样永远没有办法学的会。
2、一定要打好基础,刚开始学习编程的时候可能会很慢,感觉自己没学会啥,这可能是因为正处于打基础的阶段,只有把基础打好,未来才可以学得更好。
3、要注意实践操作,理论知识学得再多,如果不能实际的运用,还是等于0的。
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
H. java的编译器是不是都由sun公司(现在是甲骨文)独家生产
JAVA源码授权是属于Sun所开发的
(目前Sun已经被Oracle收购了)
Sun当初在JAVA的授权是属于开放的(免付费的),任何人都可以使用,无版权问题
微软自己也曾经推出过msjavx86(Windows Java VM)
但推出一年后,就不再提供下载了
目前所有的编辑环境Jbuilder、netbeans或Eclipse等等都是基于Sun的JDK为基础
所以严格来说...java的编译器确实是Sun独家生产的(所有相关的专利都属于Sun)
但java的编辑器却是百家争鸣
I. C语言和c语言编译系统有什么区别两者是包含关系吗
无区别,只不过编译器不一样罢了。因为不同的cpu构架有不同的指令集。而嵌入式基本使用RISC结构的cpu,需要使用pc上的cpu编译出在能嵌入式cpu上运行的二进制程序。这叫交叉编译。pc上的程序不可以直接在其他cpu上运行,需要重新编译。 因为编译器不一样,执行的c语言标准就跟编译器相关。 管理内存映射,设置中断系统等在pc上也有,不是嵌入式的专利。 只是做嵌入式里的界面、网络、文件编程的话,跟pc上几乎没有差别,因为有操作系统罩着。如果开发驱动程序,就要求你对所使用的cpu和板子的结构很了解,也就是看得懂硬件手册即可。 另外嵌入式环境同pc的差别 如cpu位数、硬件资源紧缺等是需要程序员考虑的