电子代写|编译器代写Compilers代考|CS243 Why do we Need Translators?

如果你也在 怎样代写编译器Compilers CS243这个学科遇到相关的难题,请随时右上角联系我们的24/7代写客服。编译器Compilers在计算机领域,编译器是一种计算机程序,它将用一种编程语言(源语言)编写的计算机代码翻译成另一种语言(目标语言)。编译器 “这一名称主要用于将源代码从高级编程语言翻译成低级语言(如汇编语言、目标代码或机器代码)以创建一个可执行的程序的程序。

编译器Compilers有许多不同类型的编译器,它们以不同的有用形式产生输出。交叉编译器为不同的CPU或操作系统产生代码,而不是交叉编译器本身所运行的系统。引导编译器通常是一个临时编译器,用于编译一种语言的更永久或更好的优化编译器。相关的软件包括:从低级语言翻译到高级语言的程序是反编译器;在高级语言之间翻译的程序,通常称为源到源编译器或转译器。语言改写器通常是指在不改变语言的情况下翻译表达形式的程序。编译器-编译器是一个产生编译器(或部分编译器)的编译器,通常以通用和可重复使用的方式,以便能够产生许多不同的编译器。

编译器Compilers代写,免费提交作业要求, 满意后付款,成绩80\%以下全额退款,安全省心无顾虑。专业硕 博写手团队,所有订单可靠准时,保证 100% 原创。最高质量的编译器Compilers作业代写,服务覆盖北美、欧洲、澳洲等 国家。 在代写价格方面,考虑到同学们的经济条件,在保障代写质量的前提下,我们为客户提供最合理的价格。 由于作业种类很多,同时其中的大部分作业在字数上都没有具体要求,因此编译器Compilers作业代写的价格不固定。通常在专家查看完作业要求之后会给出报价。作业难度和截止日期对价格也有很大的影响。

同学们在留学期间,都对各式各样的作业考试很是头疼,如果你无从下手,不如考虑my-assignmentexpert™!

my-assignmentexpert™提供最专业的一站式服务:Essay代写,Dissertation代写,Assignment代写,Paper代写,Proposal代写,Proposal代写,Literature Review代写,Online Course,Exam代考等等。my-assignmentexpert™专注为留学生提供Essay代写服务,拥有各个专业的博硕教师团队帮您代写,免费修改及辅导,保证成果完成的效率和质量。同时有多家检测平台帐号,包括Turnitin高级账户,检测论文不会留痕,写好后检测修改,放心可靠,经得起任何考验!

想知道您作业确定的价格吗? 免费下单以相关学科的专家能了解具体的要求之后在1-3个小时就提出价格。专家的 报价比上列的价格能便宜好几倍。

我们在电子代写方面已经树立了自己的口碑, 保证靠谱, 高质且原创的电子代写服务。我们的专家在编译器Compilers代写方面经验极为丰富,各种编译器Compilers相关的作业也就用不着说。

电子代写|编译器代写Compilers代考|CS243 Why do we Need Translators?

电子代写|编译器代写Compilers代考|Why do we Need Translators?

The answer to this question is obvious to anyone who has programmed in machine language. With machine language we must communicate directly with a computer in terms of bits, registers, and very primitive machine operations. Since a machine language program is nothing more than a sequence of 0’s and 1’s, programming a complex algorithm in such a language is terribly tedious and fraught with opportunities for mistakes. Perhaps the most serious disadvantage of machine-language coding is that all operations and operands must be specified in a numeric code. Not only is a machine language program cryptic, but it also may be impossible to modify in a convenient manner.

Symbolic Assembly Language
Because of the difficulties with machine language programming, a host of “higher-level” languages have been invented to enable the programmer to code in a way that resembles his own thought processes rather than the elementary steps of the computer. The most immediate step away from machine language is symbolic assembly language. In this language, a programmer uses mnemonic names for both operation codes and data addresses. Thus a programmer could write ADD X, Y in assembly language, instead of something like 0110001110010101 in machine language (where 0110 is the hypothetical machine operation code for “add” and 001110 and 010101 are the addresses of $\mathrm{X}$ and $\mathrm{Y}$ ).

A computer, however, cannot execute a program written in assembly language. That program has to be first translated to machine language, which the computer can understand. The program that performs this translation is the assembler.

电子代写|编译器代写Compilers代考|Macros

Many assembly (and programming) languages provide a “macro” facility whereby a macro statement will translate into a sequence of assembly language statements and perhaps other macro statements before being translated into machine code. Thus, a macro facility is a text replacement capability. There are two aspects to macros: definition and use. To illustrate the utility of macros, consider a situation in which a machine does not have a single machine- or assembly-language statement that adds the contents of one memory address to another, as did our hypothetical assembly instruction ADD X, Y, above. Instead, suppose the machine has an instruction LOAD, which moves a datum from memory to a register, an instruction ADD, which adds the contents of a memory address to that of a register, and an instruction STORE, which moves data from a register to memory. Using these instructions, we can create, with a macro definition, a “two-address add” instruction as follows.
$\begin{array}{lll}\text { MACRO } & \text { ADD2 } & \mathrm{X}, \mathrm{Y} \ & \text { LOAD } & \mathrm{Y} \ & \text { ADD } & \mathrm{X} \ & \text { STORE } & \mathrm{Y} \ \text { ENDMACRO } & & \end{array}$
The first statement gives the name ADD2 to the macro and defines its dummy arguments, known as formal parameters, $X$ and $Y$. The next three statements define the macro, that is, they give its translation. We assume that the machine has only one register, so the question of what registers LOAD and STORE refer to needs no elaboration.

Having defined ADD2 in this way, we can then use it as an ordinary assembly language operation code. For example, if the statement ADD2 A, B is encountered somewhere after the definition of ADD2, we have a macro use. Here, the macro processor substitutes for ADD2 A, B the three statements which form the definition of ADD2, but with the actual parameters $\mathrm{A}$ and $\mathrm{B}$ replacing the formal parameters $\mathrm{X}$ and $\mathrm{Y}$, respectively. That is, $\mathrm{ADD} 2 \mathrm{~A}, \mathrm{~B}$ is translated to
$\begin{array}{ll}\text { LOAD } & \text { B } \ \text { ADD } & \text { A } \ \text { STORE } & \text { B }\end{array}$

电子代写|编译器代写Compilers代考|CS243 Why do we Need Translators?

编译器代写

电子代写|编译器代写编译器代考|为什么我们需要翻译?


这个问题的答案对于任何用机器语言编程的人来说都是显而易见的。使用机器语言,我们必须直接与计算机进行比特、寄存器和非常原始的机器操作方面的交流。由于机器语言程序不过是一串0和1的序列,用这种语言编写复杂的算法是非常繁琐的,而且充满了出错的机会。也许机器语言编码最严重的缺点是,所有的操作和操作数都必须在数字代码中指定。机器语言程序不仅神秘莫测,而且可能无法以方便的方式进行修改


由于机器语言编程的困难,人们发明了许多“高级”语言,使程序员能够以一种类似于自己的思维过程而不是计算机的基本步骤的方式进行编码。离机器语言最直接的一步是符号汇编语言。在这种语言中,程序员对操作代码和数据地址都使用助记名称。因此,程序员可以用汇编语言编写ADD X, Y,而不是用机器语言编写诸如0110001110010101之类的代码(其中0110是“ADD”的假设机器操作代码,001110和010101是$\mathrm{X}$和$\mathrm{Y}$的地址)


然而,计算机不能执行用汇编语言编写的程序。这个程序必须首先被翻译成计算机能够理解的机器语言。执行此转换的程序是汇编程序。

电子代写|编译器代写compiler代考|宏

.编译器


许多汇编(和编程)语言提供了“宏”功能,通过这种功能,宏语句将被翻译成一系列汇编语言语句,可能还有其他宏语句,然后再被翻译成机器代码。因此,宏功能就是文本替换功能。宏有两个方面:定义和使用。为了说明宏的用途,请考虑这样一种情况:一台机器没有单独的机器或汇编语言语句来将一个内存地址的内容添加到另一个内存地址中,就像我们前面假设的汇编指令ADD X, Y一样。相反,假设机器有一个LOAD指令,它将数据从内存移动到寄存器,一个ADD指令,它将内存地址的内容添加到寄存器的内容,还有一个STORE指令,它将数据从寄存器移动到内存。使用这些指令,我们可以通过宏定义创建一个“双地址添加”指令,如下所示$\begin{array}{lll}\text { MACRO } & \text { ADD2 } & \mathrm{X}, \mathrm{Y} \ & \text { LOAD } & \mathrm{Y} \ & \text { ADD } & \mathrm{X} \ & \text { STORE } & \mathrm{Y} \ \text { ENDMACRO } & & \end{array}$第一个语句给宏命名为ADD2,并定义它的虚拟参数,称为形式参数, $X$ 和 $Y$。接下来的三个语句定义了宏,也就是说,它们给出了它的转换。我们假设机器只有一个寄存器,因此LOAD和STORE指的是什么寄存器的问题无需详细说明


以这种方式定义了ADD2之后,我们就可以将它用作普通的汇编语言操作代码了。例如,如果语句ADD2 A, B在ADD2的定义之后的某个地方遇到了,我们就有了宏的用法。在这里,宏处理器用构成ADD2定义的三个语句替换了ADD2 A、B,但用实际参数$\mathrm{A}$和$\mathrm{B}$分别替换了形式参数$\mathrm{X}$和$\mathrm{Y}$。也就是说,$\mathrm{ADD} 2 \mathrm{~A}, \mathrm{~B}$被翻译为
$\begin{array}{ll}\text { LOAD } & \text { B } \ \text { ADD } & \text { A } \ \text { STORE } & \text { B }\end{array}$

电子代写|编译器代写Compilers代考

电子代写|编译器代写Compilers代考 请认准UprivateTA™. UprivateTA™为您的留学生涯保驾护航。

微观经济学代写

微观经济学是主流经济学的一个分支,研究个人和企业在做出有关稀缺资源分配的决策时的行为以及这些个人和企业之间的相互作用。my-assignmentexpert™ 为您的留学生涯保驾护航 在数学Mathematics作业代写方面已经树立了自己的口碑, 保证靠谱, 高质且原创的数学Mathematics代写服务。我们的专家在图论代写Graph Theory代写方面经验极为丰富,各种图论代写Graph Theory相关的作业也就用不着 说。

线性代数代写

线性代数是数学的一个分支,涉及线性方程,如:线性图,如:以及它们在向量空间和通过矩阵的表示。线性代数是几乎所有数学领域的核心。

博弈论代写

现代博弈论始于约翰-冯-诺伊曼(John von Neumann)提出的两人零和博弈中的混合策略均衡的观点及其证明。冯-诺依曼的原始证明使用了关于连续映射到紧凑凸集的布劳威尔定点定理,这成为博弈论和数学经济学的标准方法。在他的论文之后,1944年,他与奥斯卡-莫根斯特恩(Oskar Morgenstern)共同撰写了《游戏和经济行为理论》一书,该书考虑了几个参与者的合作游戏。这本书的第二版提供了预期效用的公理理论,使数理统计学家和经济学家能够处理不确定性下的决策。

微积分代写

微积分,最初被称为无穷小微积分或 “无穷小的微积分”,是对连续变化的数学研究,就像几何学是对形状的研究,而代数是对算术运算的概括研究一样。

它有两个主要分支,微分和积分;微分涉及瞬时变化率和曲线的斜率,而积分涉及数量的累积,以及曲线下或曲线之间的面积。这两个分支通过微积分的基本定理相互联系,它们利用了无限序列和无限级数收敛到一个明确定义的极限的基本概念 。

计量经济学代写

什么是计量经济学?
计量经济学是统计学和数学模型的定量应用,使用数据来发展理论或测试经济学中的现有假设,并根据历史数据预测未来趋势。它对现实世界的数据进行统计试验,然后将结果与被测试的理论进行比较和对比。

根据你是对测试现有理论感兴趣,还是对利用现有数据在这些观察的基础上提出新的假设感兴趣,计量经济学可以细分为两大类:理论和应用。那些经常从事这种实践的人通常被称为计量经济学家。

Matlab代写

MATLAB 是一种用于技术计算的高性能语言。它将计算、可视化和编程集成在一个易于使用的环境中,其中问题和解决方案以熟悉的数学符号表示。典型用途包括:数学和计算算法开发建模、仿真和原型制作数据分析、探索和可视化科学和工程图形应用程序开发,包括图形用户界面构建MATLAB 是一个交互式系统,其基本数据元素是一个不需要维度的数组。这使您可以解决许多技术计算问题,尤其是那些具有矩阵和向量公式的问题,而只需用 C 或 Fortran 等标量非交互式语言编写程序所需的时间的一小部分。MATLAB 名称代表矩阵实验室。MATLAB 最初的编写目的是提供对由 LINPACK 和 EISPACK 项目开发的矩阵软件的轻松访问,这两个项目共同代表了矩阵计算软件的最新技术。MATLAB 经过多年的发展,得到了许多用户的投入。在大学环境中,它是数学、工程和科学入门和高级课程的标准教学工具。在工业领域,MATLAB 是高效研究、开发和分析的首选工具。MATLAB 具有一系列称为工具箱的特定于应用程序的解决方案。对于大多数 MATLAB 用户来说非常重要,工具箱允许您学习应用专业技术。工具箱是 MATLAB 函数(M 文件)的综合集合,可扩展 MATLAB 环境以解决特定类别的问题。可用工具箱的领域包括信号处理、控制系统、神经网络、模糊逻辑、小波、仿真等。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注