谈谈你的车:计算机和电话知道你想要什么他们要做的

会发生什么,当你按下数字计算器或类型的消息的使者? 年轻的科学家谢尔盖*Lisitsyn对如何翻译的人的语言进的机器,即编译器,以及他们的工作如何可以帮助我们了解两种语言或更多。





你需要知道什么第一个所有 编程语言编写的程序,在他们进入我们的生活。 根据各种估计,目前有两个半到十万的编程语言的正式标志系统。 他们的帮助记录程序的一个组必须遵循的步骤的汽车。

我们的任何行动,在计算机、平板电脑和手机有多种语言,这是严格根据某些规则所述的一切,我们潜在的可以做到的。 只有一小部分的这些语言可以与计算机直接的,即,直接互动的机代码的零和的。

对于所有其他语言,如C++、Java需要的翻译人员将重写我们的程序计算机可以理解的形式。 一品种的种翻译人员被称为编译器。

不令人惊讶的是,汇编写的翻译科,极其相关性和通用性。 之前生命的程序是笨重的:我不得不写他们的方案在机器码,那就是,所设置的零或人。 他看上去很庞大,这是非常困难阅读,特别是他们。 但是,替换机代码来编程语言,这是很容易解释计算机的任务。 并用这些语言,分别所需要的口译人员。

第一个翻译在苏联—或者,因为它是那么叫,PP、方案编制的程序编写1954年。 今天的翻译非常不同的:免费下载和编辑(或开放源码)和付费,这可能不是正确的。

 

要发挥的作用的一个编译器

翻译程序的语言计算机语言可能是不同的。 有一个选项采取的每个行和解释它对计算机,然而,它经常是更好地阅读整个程序、进程,使它更加优化用于计算机的了解,然后采取的形式是机器码。 翻译的第一类被称为口译人员和其他编译器。

也有许多中间形式。 要发挥的作用的一个编译器或翻译器容易提出自己作为一个翻译,例如,从韩国到俄罗斯。 你可以改写的文本进入另一个语言翻译的每一个句子分开,并且完全可以阅读这本书的理解,考虑如何另一种语言将会更好的声音无论这些其他的表达方式。 如果你的目标是要传达的基本思想,你甚至可以做到的额外的在你的意见的章节,并呼吁符的其它名字。 一切都取决于翻译的任务。





然而,有必要澄清的另一个非常重要的一点。 如果你是一个翻译或口译员,然后每读转移你写的每一个线。 换句话说,书的架子上的最后文翻译朝鲜语言为俄罗斯,你没有选择。

在情况下你很勤奋的翻译编译器,水果你的劳动成—翻译发出在一个单独的图书,它可以放在架子上,佩服,拭去尘埃,并获得在任何时刻。 计算机语言的这本书,书面的理解的语言的机器,被称为一种可执行的文件。 然而,如果之后反映在该文本中,提交人的书,你翻译一下,我决定做一些建议,或一个额外的逗号,你们将要做一遍:读一本新书,以实现的、认为并且要放在架子上下来的老的翻译的新的体积。 此外,这两个导致工作甚至可能不同,但是,所以它肯定是找出你将要翻译的一切。

 

此外—更多 什么是内部编译器,或者作为专业的翻译人员吗? 有条件时,编译器可分为三个部分:前端,中端和后端。 详细讨论上的每个人。

前端是直接使用的语言,我们要翻译的书。 它是疯狂的舒适(后来的读者将明白为什么)。 编译器生产的词法、句法和语义分析。 发言的书籍,被判刑分为的话,是所谓的主题之间的连接部分的建议和所有其他建议。

现在想象一个更有趣的事情。 让我们说你翻译一个韩国本书到俄罗斯语言、和国籍等你是法国人。 你的任务在第一阶段是试阅读韩国,将它翻译成法语,其中你喜欢的工作上。 回到计算机、语言在其中提供的信息编译器,以区别于语言的可执行的文件(书在俄罗斯)和语言要翻译(本书是在韩国的)。 这种语言是所谓的语言中表示。

在第二阶段中最后,你在你的母语(在我们的情况下,法国)思考和转变该文本,使它变得更加清晰,那就是,进行中的作用不仅仅是翻译,但是编辑。 如果这是一本杂志的文章,其中半数组成的"水"的阶段中结束翻译成法文文本,将删除所有不必要的,只留下的义组成部分。

是,你不需要编辑作者。 而且,如果你认为自己没有足够的智慧告诉他你需要什么,是不是,你可以未编辑文本。 就是计算机可能不是最优化的和没有办法改变码的提交人,并翻译成中间表示可以这样做一些限制,并且可以完全在其自己的自由裁量权。 最好的方式取决于有关情况。

完全未优化码,特别是编写初学者,它往往是缓慢和效率低下。 因此,一些元素的优化,以输入的建议。 但要充分优化该代码也不总是必要的,例如,在C语言,其中程序员可以处置的存在其自由裁量权,考虑到随后的目标:这是一个因素,计算机不能提供。





最后,在最后部分的编译器在后端,我们转移进行处理或储存版的书与法国对最后的语言--俄罗斯。 或者,说话语言的程序员,要翻译的中间体语言的执行的语言可执行的文件。 这可执行的文件是保存的独立的原始程序的存在和可以运行多次作为我们的愿望。

 

编译器作为实质的进展

世界正在不断创造新的和更新旧的语言。 不断改进和机构的方式的机器认读的信息。 事实证明,任何改变结构或语言需要改写编译器吗? 没有。

所有这将需要巨大的金钱和努力的程序之后,每个小小的改变,并取得进展根本就不能走路的步伐。 这是规避这个问题,它便应用上述方案的三个阶段。 事实是,在创建新的或者修改旧的语言需要编写唯一的前端的第一阶段,相互作用的直接用的语言程序和翻译成该语言的中间表示。 这个动作后的其他两个部分,工作中的代表性和语言的可执行的文件、进程代码,根据同一方案不如以前。

类似的情况是在这种情况下的架构变化。 因为它是最后一个阶段,后台工作的翻译是从中间表示的最终码,改变的只是其中的一部分是不够的编译器,并获得在一个不同的架构。 回到类似的文学翻译人员,在学习一门新的语言,例如希伯来语,这是不够的记忆翻译的所有词语从希伯来语到法语,然后翻译成其他语言。 这是非常方便。 这是面临的情况,任何人都有经验的学习超过两种语言。

类科学和技术问题不断增加,编写新的语言旧产生了新的标准经常变化的结构的计算机。 所有这些都需要努力从程序员编写的。 优化的方法应用时改善代码在编制时间,还不断通过补充的数学家。 在交流经验在计算机科学和开放源项目,在任何发展就是提交公众的审查和可自由使用。 在一般情况下,编严格遵守软件和电脑,没有他们就不可能开展的任何计算机化的行业。 出版

提交人:谢尔盖*Lisitsyn

P.S.记住,仅仅通过改变他们的消费—我们一起改变世界了。 ©

加入我们在Facebook,脸谱了,语音

资料来源:theoryandpractice.ru/posts/12435-compilers