什么时候有中文编译器
① 有没有中文代码编辑器
基于纯汉字编码的系统目前是没有,但不保证以后没有。目前我们所使用的中文操作系统都是基于二进制的英文字母编码所编译汉化而来的……
② 纯中文计算机什么时候出现
编程是为了实现一定功能,而语言又仅仅是所编程序的负载
用什么语言不是关键,关键是思想
正如走路,你讨论先跨左脚还是先跨右脚,没意义
你开发一套纯中文语言的编译器
即使是地道的中国人,依旧需要基本的训练
正如会说话依旧要受点教育才会写字
计算机是老外的产物,所以用人家的语言能更好的工作
这不是崇洋媚外,而是为了更好的实现自己的目标
而且现在的计算机还是冯.诺依曼结构
如果我们能从本质上才改变它
而中文恰恰又能为其提供更大的便利
相信老外也会用中文来编程的
③ 为什么程序只能用英语写,什么时候能开发出能用汉语写的程序开发软件
谁说没有
易语言概述
一.易语言简介
易语言是一个自主开发,适合国情,不同层次不同专业的人员易学易用的汉语编程语言。易语言降低了广大电脑用户编程的门槛,尤其是根本不懂英文或者英文了解很少的用户,可以通过使用本语言极其快速地进入Windows程序编写的大门。易语言汉语编程环境是一个支持基于汉语字、词编程的、全可视化的、跨主流操作系统平台的编程工具环境;拥有简、繁汉语以及英语、日语等多语种版本;能与常用的编程语言互相调用;具有充分利用API,COM、DLL、OCX组件,各种主流数据库,各种实用程序等多种资源的接口和支撑工具。易语言有自主开发的高质量编译器,中文源代码被直接编译为CPU指令,运行效率高,安全可信性高;拥有自己的数据库系统,且支持访问现有所有数据库;内置专用输入法,支持中文语句快速录入,完全解决了中文输入慢的问题;易语言除了支持界面设计的可视化,还支持程序流程的即时可视化;除了语句的中文化之外,易语言中还专门提供了适合中国国情的命令,如中文格式日期和时间处理、汉字发音处理、全半角字符处理、人民币金额的处理等;易语言综合采用了结构化、面向对象、组件、构架、集成化等多种先进技术,并在运行效率、性能价格比、全可视化支持、适应本地化需要、面向对象以及提供Windows,linux上的运行平台等具有特色;现有各种支持库多达40多个,户可以使用她来满足几乎所有的Windows编程需求,多媒体功能支持强大,完善的网络、端口通讯和互联网功能支持,网上与论坛上的学习资源众多。在易语言及其编译器的设计与实现、可视化汉语编程的构建、提供多种语言版本等方面具有创新。目前易语言已取得国家级鉴定,鉴定会专家一致认为:易语言在技术上居于国内领先地位,达到了当前同类产品的国际先进水平。
二.易语言的文化背景
中华民族拥有五千年文化历史,民族文化源远流长,从黄帝开始即结节记事,后仓颉造字,从而有了文字,在秦朝即统一了文字,那时的文字是篆书,后一步一步发展成为隶书、楷体等。
中国计算机应用的发展在经过操作系统汉化显示环境,中文输入法的两次较大跨越后,正经历一个重要的历史时期:中文化编程已成为当务之急。
英文编程软件只能使用英文输入程序代码,并且需要用户掌握大量专业英文术语,这是国人难以进入软件开发大门的根本所在!
而且国人的述事习惯与外国人的语法习惯还有很大区别,如外国人表示"按顺序排从大到小方式",而中国人的表达方式为:"按从大到小方式顺序排"或简称"按升序排"。外国人的语法大多数是与中国人不同的,再加上英文有多种语态,有时间动词,有不同的复数形式,这在中国人学习外语上都不能很好的适应。更何况英文编程中大多数用大写缩写的方法表示一个概念、定义和变量,因此如果不了解的人是无从知道,而中文几个字即可简单表示了。中文具有比较明确的归类表达方式,如公交车、小汽车、自行车、吉普车均是行走的车辆,都与车有关,而英语每个事物都有一个不同的名词,不容易记忆,如BUS公交车,CAR小汽车,BIKE自行车,JEEP吉普车。因此这种方式如果套用到编程上,那么每个变量均用不同的代表,那样要记忆的词汇量就非常巨大了,有个对比,中国人只要掌握3000个字就能读名着,而外国人必须掌握30000个以上单词才能看明白报纸。因此小的记忆量可以适合在编程中只考虑方法,而不必过多地考虑语法、变量的名称等。而且由于中文是方块字,包含的信息量也大,能够见文知义。
通过以上,东西方文化的差异造成对编程学习上的很大区别,中文文化背景决定了中国人还是学自己的编程语言好。
三.易语言的特点与强大优势
1、全中文支持,全部自主知识产权
2、拥有自己的编译器
3、跨平台编程
4、拥有自己的数据库系统,且支持访问现有所有数据库。
5、内置专用输入法,支持中文语句快速录入
6、全可视化编程
7、中文本土化特色的支持
8、多种语言支持
9、可以与其它编程语言协作开发
10、支持世界先进编程技术
11、人机界面友好,集成化程序设计界面
12、代码即为文档、源程序格式统一
13、超强的程序编辑器
14、多媒体功能支持强大
15、完善的网络、端口通讯和互联网功能支持
16、支持调用API底层函数
17、支持标准外部OCX组件
18、可由易语言支持库无限扩充其功能
19、模块化开发
20、强大的学习与帮助系统
四.易语言具有的重要意义
由于易语言所特有的易学、易用、实用,在我国具有如下重要发展意义:
1、推动软件产业化
众所周知,印度之所以能够成为软件大国,与他们使用英文作为母语是分不开的。现在有了易语言,国人也能够使用自己的母语进行编程,并且所编写出来的源程序可以轻松通过系统附带工具翻译转换为任何一种外文,为我国实现软件产业化和软件批量出口,培养大量软件人才奠定坚实的基础。
2、提高社会生产率
现在很多各行各业具有丰富工作经验的人们苦于很难学会英文编程语言,从而无法将自己的工作经验通过计算机软件的形式表达出来。是让专业程序员来学习行业知识,还是让行业专家来学习软件开发,一直是一个很难解决的问题。现在有了易语言,行业专家也能轻松学会软件开发,从而能够将其工作经验彻底地体现到计算机软件中去,为他人和社会所用,提高社会生产率。
3、推广编程教育
邓小平同志曾经提到过:"计算机要从娃娃抓起"。现在有了易语言,不必要先去等待学生掌握足够多的英文知识,即可马上开始学习计算机编程。并且由于易语言支持现有的先进编程理念和技术,与现有其它编程语言能够相互融合贯通,是最好的编程教育工具。
4、保障国家安全
易语言是从最底层一步一步发展起来的,拥有全部自主知识产权和核心技术。推广应用易语言不会带来任何安全或后门隐患,并且可以为国家整体战略而作具体调整和更改。
5、配合国家整体发展战略
根据上一点和国家目前推广应用linux操作系统的战略决定,易语言现在已经支持对linux操作系统软件的开发,从而对丰富linux平台下的应用软件起到帮助作用,改变现行linux应用软件缺乏的问题。
6、发展自己的核心技术
在易语言中,拥有几项关键性的核心技术,譬如编译器技术、数据库技术等等,推广应用易语言能够让我们可以对其继续发展和完善,和国内同行互相交流学习,提高我国在这些关键领域的科技水平和竞争能力。
④ 为什么在编译器上编译后显示不了中文,是编译器的缘故吗 那什么编译器支持中文
要根本上了解怎么显示中文,你首先要 了解 字符集 这个概念
ascii 字符集共有256个字符 无汉字 unicode有各个国家的文字符号,包括几乎所有汉字,
编译器是否支持汉字取决于它采用什么字符集。
当年没有unicode时候,程序员大牛 用两个ascii码(从后128个取出)表示一个汉字代号。
才使汉字登上了计算机舞台
当年不能打汉字时候都是用汉字字库 以点阵方式从vga模式上画出来的。。。
你上网查查 ascii 和unicode 能搜到所有你在这方面的疑惑
⑤ 哪里有中文版的java编译器
可以使用MyEclipse然后汉化
⑥ 很奇怪为什么国内没有任何组织或个人开发最底层的中文编译器呢
这是一个技术问题,你如果没读过编译原理(龙书)的话,你是看不懂下面的回答的。因为中国技术不足,没人能写出支持中文的lex和yacc。首先词法分析生成器lex,就对中文不友好,它只支持ascii字母,不支持中文。这意味着你编译器里的词汇只能是英文单词,不能是中文词汇。其次就是语法分析生成器yacc了,也不支持中文,只支持用英文写的语法规则,不能用中文书写。这意味着最最基本的语法规则是全英文的,这算哪门子中文编程语言。非常遗憾,中国目前没有牛人造出支持中文的lex和yacc来,否则全中文编译器一定会满天飞的,多到烂大街。为什么说多到烂大街?一个全中文的编译器其实仅仅需要修改编译器的前端词法分析器和语法分析器(语法分析器甚至无需大改动),后端直接对接开源代码即可,开源英文编译器已经烂大街了,把它们的后端移植过来就行了。但关键就是没有支持中文的自动化工具lex和yacc。
自动化这条路走不通,纯手写总可以吧。我猜测易语言就是前端纯手写的全中文编译器。你可以使用易语言,绝对可以达到你的要求。但是从技术的角度来讲,lex和yacc的技术高度远高于易语言,毕竟lex和yacc号称编译器的编译器,编译器之母。
⑦ 中文版的java编译器MyEclipse 6.0.1也就是汉化包
楼主说错了,不是java编译器,是集成开发工具IDE,楼上也理解错了,MyEclipse当然有6.0了,跟eclipse3.3相对应。
最后,学java还用中文开发工具啊,那点英文。。。。。。起码的单词,这必须勉强自己先学,要不看api什么的都不好看。
⑧ 什么时候可以用中文写代码
有早就有了..只是你我知道而已
叫做"易语言"
全中文的...
⑨ 有没有中文语言的编译器不像c语言一样,还要学英文。
想学编程就要熟悉英文环境,中文代码的我就知道个易语言,但这个哪有c语言流行呢?编程语言流行排行榜上Java、C、C++居前三甲,楼主先好好学C语言吧。就那几个关键字,多练练就熟悉了。如果要VC6.0编辑器变成中文,可以去下中文版的,当然代码还是英文字母。我还是推荐用英文界面的,中文版不知哪里就会蹦出个BUG。
⑩ 编译器的发展史
编译器
编译器,是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能识别,运行的低级机器语言的程序。编译器将源程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源程序一般为高级语言(High-level language),如Pascal,C++等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。
一个现代编译器的主要工作流程如下:
源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables)
目录 [隐藏]
1 工作原理
2 编译器种类
3 预处理器(preprocessor)
4 编译器前端(frontend)
5 编译器后端(backend)
6 编译语言与解释语言对比
7 历史
8 参见
工作原理
翻译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器言)。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。
典型的编译器输出是由包含入口点的名字和地址以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序。
编译器种类
编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码,这种编译器又叫做“本地”编译器。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。“源码到源码编译器”是指用一种高级语言作为输入,输出也是高级语言的编译器。例如: 自动并行化编译器经常采用一种高级语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语言构造进行注释(如FORTRAN的DOALL指令)。
预处理器(preprocessor)
作用是通过代入预定义等程序段将源程序补充完整。
编译器前端(frontend)
前端主要负责解析(parse)输入的源程序,由词法分析器和语法分析器协同工作。词法分析器负责把源程序中的‘单词’(Token)找出来,语法分析器把这些分散的单词按预先定义好的语法组装成有意义的表达式,语句 ,函数等等。 例如“a = b + c;”前端词法分析器看到的是“a, =, b , +, c;”,语法分析器按定义的语法,先把他们组装成表达式“b + c”,再组装成“a = b + c”的语句。 前端还负责语义(semantic checking)的检查,例如检测参与运算的变量是否是同一类型的,简单的错误处理。最终的结果常常是一个抽象的语法树(abstract syntax tree,或 AST),这样后端可以在此基础上进一步优化,处理。
编译器后端(backend)
编译器后端主要负责分析,优化中间代码(Intermediate representation)以及生成机器代码(Code Generation)。
一般说来所有的编译器分析,优化,变型都可以分成两大类: 函数内(intraproceral)还是函数之间(interproceral)进行。很明显,函数间的分析,优化更准确,但需要更长的时间来完成。
编译器分析(compiler analysis)的对象是前端生成并传递过来的中间代码,现代的优化型编译器(optimizing compiler)常常用好几种层次的中间代码来表示程序,高层的中间代码(high level IR)接近输入的源程序的格式,与输入语言相关(language dependent),包含更多的全局性的信息,和源程序的结构;中层的中间代码(middle level IR)与输入语言无关,低层的中间代码(Low level IR)与机器语言类似。 不同的分析,优化发生在最适合的那一层中间代码上。
常见的编译分析有函数调用树(call tree),控制流程图(Control flow graph),以及在此基础上的 变量定义-使用,使用-定义链(define-use/use-define or u-d/d-u chain),变量别名分析(alias analysis),指针分析(pointer analysis),数据依赖分析(data dependence analysis)等等。
上述的程序分析结果是编译器优化(compiler optimization)和程序变形(compiler transformation)的前提条件。常见的优化和变新有:函数内嵌(inlining),无用代码删除(Dead code elimination),标准化循环结构(loop normalization),循环体展开(loop unrolling),循环体合并,分裂(loop fusion,loop fission),数组填充(array padding),等等。 优化和变形的目的是减少代码的长度,提高内存(memory),缓存(cache)的使用率,减少读写磁盘,访问网络数据的频率。更高级的优化甚至可以把序列化的代码(serial code)变成并行运算,多线程的代码(parallelized,multi-threaded code)。
机器代码的生成是优化变型后的中间代码转换成机器指令的过程。现代编译器主要采用生成汇编代码(assembly code)的策略,而不直接生成二进制的目标代码(binary object code)。即使在代码生成阶段,高级编译器仍然要做很多分析,优化,变形的工作。例如如何分配寄存器(register allocatioin),如何选择合适的机器指令(instruction selection),如何合并几句代码成一句等等。
编译语言与解释语言对比
许多人将高级程序语言分为两类: 编译型语言 和 解释型语言 。然而,实际上,这些语言中的大多数既可用编译型实现也可用解释型实现,分类实际上反映的是那种语言常见的实现方式。(但是,某些解释型语言,很难用编译型实现。比如那些允许 在线代码更改 的解释型语言。)
历史
上世纪50年代,IBM的John Backus带领一个研究小组对FORTRAN语言及其编译器进行开发。但由于当时人们对编译理论了解不多,开发工作变得既复杂又艰苦。与此同时,Noam Chomsky开始了他对自然语言结构的研究。他的发现最终使得编译器的结构异常简单,甚至还带有了一些自动化。Chomsky的研究导致了根据语言文法的难易程度以及识别它们所需要的算法来对语言分类。正如现在所称的Chomsky架构(Chomsky Hierarchy),它包括了文法的四个层次:0型文法、1型文法、2型文法和3型文法,且其中的每一个都是其前者的特殊情况。2型文法(或上下文无关文法)被证明是程序设计语言中最有用的,而且今天它已代表着程序设计语言结构的标准方式。分析问题(parsing problem,用于上下文无关文法识别的有效算法)的研究是在60年代和70年代,它相当完善的解决了这个问题。现在它已是编译原理中的一个标准部分。
有限状态自动机(Finite Automaton)和正则表达式(Regular Expression)同上下文无关文法紧密相关,它们与Chomsky的3型文法相对应。对它们的研究与Chomsky的研究几乎同时开始,并且引出了表示程序设计语言的单词的符号方式。
人们接着又深化了生成有效目标代码的方法,这就是最初的编译器,它们被一直使用至今。人们通常将其称为优化技术(Optimization Technique),但因其从未真正地得到过被优化了的目标代码而仅仅改进了它的有效性,因此实际上应称作代码改进技术(Code Improvement Technique)。
当分析问题变得好懂起来时,人们就在开发程序上花费了很大的功夫来研究这一部分的编译器自动构造。这些程序最初被称为编译器的编译器(Compiler-compiler),但更确切地应称为分析程序生成器(Parser Generator),这是因为它们仅仅能够自动处理编译的一部分。这些程序中最着名的是Yacc(Yet Another Compiler-compiler),它是由Steve Johnson在1975年为Unix系统编写的。类似的,有限状态自动机的研究也发展了一种称为扫描程序生成器(Scanner Generator)的工具,Lex(与Yacc同时,由Mike Lesk为Unix系统开发)是这其中的佼佼者。
在70年代后期和80年代早期,大量的项目都贯注于编译器其它部分的生成自动化,这其中就包括了代码生成。这些尝试并未取得多少成功,这大概是因为操作太复杂而人们又对其不甚了解。
编译器设计最近的发展包括:首先,编译器包括了更加复杂算法的应用程序它用于推断或简化程序中的信息;这又与更为复杂的程序设计语言的发展结合在一起。其中典型的有用于函数语言编译的Hindley-Milner类型检查的统一算法。其次,编译器已越来越成为基于窗口的交互开发环境(Interactive Development Environment,IDE)的一部分,它包括了编辑器、连接程序、调试程序以及项目管理程序。这样的IDE标准并没有多少,但是对标准的窗口环境进行开发已成为方向。另一方面,尽管近年来在编译原理领域进行了大量的研究,但是基本的编译器设计原理在近20年中都没有多大的改变,它现在正迅速地成为计算机科学课程中的中心环节。
在九十年代,作为GNU项目或其它开放源代码项目的一部分,许多免费编译器和编译器开发工具被开发出来。这些工具可用来编译所有的计算机程序语言。它们中的一些项目被认为是高质量的,而且对现代编译理论感性趣的人可以很容易的得到它们的免费源代码。
大约在1999年,SGI公布了他们的一个工业化的并行化优化编译器Pro64的源代码,后被全世界多个编译器研究小组用来做研究平台,并命名为Open64。Open64的设计结构好,分析优化全面,是编译器高级研究的理想平台。
编译器是一种特殊的程序,它可以把以特定编程语言写成的程序变为机器可以运行的机器码。我们把一个程序写好,这时我们利用的环境是文本编辑器。这时我程序把程序称为源程序。在此以后程序员可以运行相应的编译器,通过指定需要编译的文件的名称就可以把相应的源文件(通过一个复杂的过程)转化为机器码了。
编译器工作方法
首先编译器进行语法分析,也就是要把那些字符串分离出来。然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。最后生成的是目标文件,我们也称为obj文件。再经过链接器的链接就可以生成最后的可执行代码了。有些时候我们需要把多个文件产生的目标文件进行链接,产生最后的代码。我们把一过程称为交叉链接。