语言翻译

编译原理 作业一

跟風遠走 提交于 2019-11-29 04:14:43
编译程序与翻译程序、汇编程序的联系与区别,解释程序与编译程序的区别。     翻译程序的含义就是它本身字面含义,就是一个语言翻译机,将我们码出来的高级代码翻译给计算机,计算机能能懂的只有0101,所以翻译程序就是将高级语言程序翻译成计算机语言程序;将翻译程序可以分为两种:1.编译程序,2.解释程序。 1.编译程序:将高级语言源程序一次性全部翻译成一个可执行程序,每次运行都会生成一个对应的程序,就像我们拿着一篇英语文章,在翻译的时候会留下一个翻译中介,把零散的翻译最后整合成一篇我们能看懂的文字的文章; 2.解释程序:将高级语言源程序一句一句翻译,并不会生成一个执行文件,简单来说就是对着那个英语文章一句一句理解给自己,中间并不需要留下有你翻译的笔记本; 汇编程序则是一种将汇编语言源程序翻译成计算机语言源程序,一步到位,自己写出来的源程序直接翻译给计算机。 编译程序和汇编程序的区别在于,前者是从高级语言过度到计算机语言,后者则是汇编语言过度到计算机语言。 编译过程包括哪几个主要阶段及每个阶段的主要功能。 正如上面所说,编译程序就像翻译英语文章一样。大量的翻译导致我们要分阶段进行。 1.首先要看懂单词,识别出来 2.理解它的语法结构,知道哪里是头哪里是尾 3.对语法句子的初步理解,进行初步的翻译 4.对初步翻译出来的进行优化处理 5.整合,写成译文

作业一——编译原理概述

匆匆过客 提交于 2019-11-29 04:14:37
2019年9月3日 作业一——编译原理概述 1)简述编译程序与翻译程序、汇编程序的联系与区别。   ① 编译程序是现代计算机系统的基本组成部分之一,从功能上看,一个编译程序就是一个语言翻译程序。但是编译语言不等同于翻译语言,编译语言是源语言想Pascal或者C这样的高级语言,目标语言是像汇编语言或机器语言那样的低级语言,这样的翻译程序才叫做编译程序。   ② 翻译程序就是把一种语言(源语言)书写的程序翻译成另一种语言(目标语言)的等价程序。   ③ 汇编程序是一个翻译程序,它把汇编语言程序翻译成机器语言程序。 2)编译过程包括哪几个主要阶段及每个阶段的主要功能。   编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。 阶段 主要功能 ①词法分析 是编译过程的第一个阶段,是从左到右一个字符一个字符地读入源程序,对构成源程序地字符流进行扫描和分解,从而识别出一个个单词。 ②语法分析 是编译过程的第二个阶段,任务是在词法分析的基础上将单词序列分解成各类语法短语。这种语法短语也成为语法单位,可以表示成语法树。 ③语义分析 审查源程序有无语义错误,为代码生成阶段收集类型信息。 ④中间代码生成 将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。所谓中间代码是一种结构简单、含义明确的记号系统,这种记号系统可以设计为多种多样的形式。

第一次作业:编译原理概述

吃可爱长大的小学妹 提交于 2019-11-29 04:14:34
1) 翻译程序就是将高级语言源程序翻译成机器语言源程序的软件。它分为2种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。编译程序是先完整编译后运行的程序,如C、C++等;解释程序是一句一句翻译且边翻译边执行的程序,如JS、Python等。汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。编译程序与汇编程序的区别:如果源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序。 2) 编译程序的工作划分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。 词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词(亦称单词符号或简称符号),如基本字,标识符、常数、运算符和界符。 语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴),如“短语”、“句子”、“程序段”和“程序”等。通过语法分析,确定整个输入串是否构成语法上正确的“程序”。语法分析所依循的是语言的语法规则。语法规则通常用上下文无关文法描述。词法分析是一种线性分析

第一次作业:编译原理概述

随声附和 提交于 2019-11-29 04:14:09
---恢复内容开始--- 1.简述编译程序与翻译程序、汇编程序的联系与区别。 答:翻译程序是指把高级语言源程序翻译成机器语言源程序,它包含了两种:一种是编译程序,另一种是解释程序。 编译程序是指完成从源程序到目标程序的翻译工作,它是先将代码完整的编译后运行的程序。 汇编程序是将汇编语言源程序翻译成机器语言程序的语言翻译程序。 翻译程序是将“高级语言”翻译成“低级语言”,而汇编程序是将汇编语言翻译成机器语言。 2.编译过程包括哪几个主要阶段及每个阶段的主要功能。 答:编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成这6个阶段。 词法分析功能是对输入的高级语言源程序进行词法分析,对字符进行扫描和分解,把字符串形式分解为单词符号串形式。 语法分析是在词法分析的基础上将单词序列分解成各类语法短语,识别各类语法的层次关系,并将其生成为语法树的形式。 语义分析主要是审查源程序有无语义错误,为代码生成阶段收集类型信息。 中间代码生成在语法分析的基础上,对程序进行语义分析,产生出表达程序语义的内部表达形式(中间代码)。 中间代码优化是按照等价变换的原则,对语义分析器产生的中间代码序列进行等价变换,删除多余的操作。 目标代码生成的功能是指把优化后的中间代码变成机器指令代码,得到可在目标机器上执行的机器语言程序。 3.简述解释程序与编译程序的区别。 答

第一次作业

∥☆過路亽.° 提交于 2019-11-29 04:13:21
1)编译程序与翻译程序、汇编程序的联系与区别 编译程序是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。编译程序工作时,先分析,后综合,从而得到目标程序。   翻译程序是指一个程序,它把一种语言所写的源程序翻译成与之等价的另一种语言的目标程序。解释程序也是一种翻译程序,它将源程序作为输入并执行它,边解释边执行。它与编译程序的主要区别在于在解释程序执行的过程中不产生目标程序,而是按照源语言的定义解释执行源程序本身。   汇编程序要一个翻译策程序,它把汇编语言程序翻译成机器语言程序。 2)编译过程包括哪几个主要阶段及每个阶段的主要功能。   编译程序划分为6个阶段,分别是词法分析、语法分析、中间代码生成、代码优化和目标生成。词法分析是编译过程的第一个阶段,是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流行进行扫描和分解,从而识别一个个单词。语法分析是在词法分析的基础上将单词序列分解成各类语法短语,如:“程序”、“语句”、“表达式”等。语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。中间代码生成是在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示叫做中间语言或中间代码

编译原理概述

橙三吉。 提交于 2019-11-29 04:12:41
1.编译程序与翻译程序、汇编程序的联系与区别。 编译就是把高级语言变成计算机可以识别的2进制语言, 是对整个写好的程序进行翻译。 最终形成目标文件 解释程序, 是一句一句翻译的, 最终不形成目标文件 汇编程序一般指编译生成与之等价的 机器语言 翻译程序就是一行行的执行,比如dos,你打个命令再按下回车, 所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写 的 源程序 作为输入,解释一句后就提交 计算机 执行一句,并不形成 目标程序 。就像外语翻译中的“口译”一样,说一句翻一句,不产生 全文 的翻译 文本 。这种工作方式非常适合于人通过 终端设备 与计算机 会话 ,如在终端上打一条 命令 或 语句 ,解释程序就立即将此语句解释成一条或几条 指令 并提交 硬件 立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些 小型机 的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。 2.编译过程包括哪几个主要阶段及每个阶段的主要功能。 第一阶段:词法分析 词法分析的任务是:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词(亦称单词符号或简称符号),如基本字(begin、end、if、for、while),标识符、常数、运算符和界符(标点符号

编译原理概述

孤人 提交于 2019-11-29 04:12:33
(1)简述编译程序与翻译程序、汇编程序的联系与区别。 1.编译程序与翻译程序、汇编程序的联系 编译程序、翻译程序、汇编程序是3种语言处理程序。 2.编译程序与翻译程序、汇编程序的区别 汇编程序(为低级服务)是将汇编语言书写的源程序翻译成由机器指令和其他信息组成的目标程序。 翻译程序(为高级服务)直接执行源程序或源程序的内部形式,一般是读一句源程序,翻译一句,执行一句,不产生目标代码,如BASIC解释程序。 编译程序(为高级服务)是将高级语言书写的源程序翻译成与之等价的低级语言的目标程序。编译程序与翻译程序最大的区别之一在于前者生成目标代码,而后者不生成。(2)编译过程包括哪几个主要阶段及每个阶段的主要功能。 1.词法分析:词法分析是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符的读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。 2.语法分析:语法分析是编译过程的第二个阶段。语法分析的任务是在词法分析的基础上将单词序列分解成各类语法短语。 3.语义分析:语义分析椒审查源程序有无语义错误,为代码生成阶段收集类型信息。 4.中间代码生成:进行了上述胡语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或者中间代码。 5.代码优化:这是对前一阶段产生的中间代码进行交换或进行改造

小白学Python——用 百度翻译API 实现 翻译功能

女生的网名这么多〃 提交于 2019-11-29 03:13:50
本人英语不好,很多词组不认识,只能借助工具;百度翻译和谷歌翻译都不错,近期自学Python,就想能否自己设计一个百度翻译软件呢? 百度翻译开放平台: http://api.fanyi.baidu.com/api/trans/product/index 百度翻译开放平台是百度翻译面向广大开发者提供开放服务的平台。 服务涵盖: 通用翻译API、定制化翻译API、语音翻译SDK、拍照翻译SDK等 ,并持续更新中。自己用通用的即可。 通用翻译API采用全流程自助申请的模式。点击网站上方的“登录”按钮,以百度账号登录平台;在产品服务页面点击“立即使用”,按照页面提示信息注册成为开发者,即可获得APPID和密钥信息。 同一百度账号或手机号码仅能申请一组APPID和密钥信息 ,该APPID和密钥信息可用于多项服务调用 已注册开发者的用户,可在产品服务页面点击“立即使用”或者在管理控制台开通通用翻译API服务;如需开通更多服务,可在管理控制台-总览页面开通其他服务。 通用翻译API技术文档 http://api.fanyi.baidu.com/api/trans/product/apidoc 通用翻译API通过HTTP接口对外提供多语种互译服务。您只需要通过调用通用翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。 通用翻译API

JVM深入理解

╄→尐↘猪︶ㄣ 提交于 2019-11-29 02:41:47
1.为了将java/c翻译为0/1序列组成的机器指令,必须有翻译员,担任翻译员工作的就是编译程序。问题在于每个平台认识的0、1序列并不一样。某个指令在windows上也许是0101,在Linux下也许是1010,因此必须使用不同的编译程序为不同的平台编译出可执行的机器码。 2.java的原始码的扩展名为.java,经过编译程序翻译为扩展名为.class的位码。 3.不同的平台必须安装专属该平台的JVM,这就好比你讲中文(*.java),java编译程序帮你翻译为英语(*.class),这份英语文件到各个国家之后,再由当地看得懂英文的人(JVM)翻译为当地语言(机器码)。所以JVM担任的职责之一就是当地翻译员。 4.JVM就是java程序的操作系统,JVM的可执行文件就是.class文档。 5.JRE是Java的执行环境,只要使用Java SE API中的链接库,在安装有JRE的计算机上就可以直接运行,无需额外在程序中在包装链接库。 来源: https://www.cnblogs.com/manmanchanglu/p/11441082.html

开发谷歌浏览器翻译插件

落爺英雄遲暮 提交于 2019-11-28 19:51:41
今天早上打开博客园.看到一文章" 开发chrome扩展程序 " 自己看看,也还很简单,就自己动手写一个翻译插件 来看看效果 以前用谷歌的翻译接口做了一个翻译功能的网页 http://liuju150.cacacoo.com 所以我就打算把这个功能做成一个谷歌浏览器的插件 这个翻译功能就一个页而.代码也很简单 + View Code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135