编译原理-第一章 引论-C和Java编译系统

C语言的编译系统:

  

  • 预处理:实现文件包含#include<stdio.h>;实现宏展开#define pi 3.1415926;条件编译#if、#ifdef
  • 汇编器:对输入进行两遍扫描。
    • 第一遍:汇编器扫描输入,将表示存储单元的所有标识符都存入符号表,并分配地址。
    • 第二遍:汇编器再次扫描输入,把每个操作码翻译成机器语言中代表那个操作的位串,并把代表存储单元的每个标识符翻译成为符号表中为这个标识符分配的地址。
  • 连接器:收集、组织程序所需的不同代码和数据。

    • 静态连接器:将多个可重定位目标文件组成一个可执行目标文件(也可以组成一个可重定位目标文件)。
    • 动态连接器:支持在内存中的可执行程序在执行时与共享目标文件进行动态的链接。

JAVA语言的编译系统:

        

  • 一般的高级语言程序如果要在不同的平台上运行,至少需要编译成不同的目标代码。
  • Java虚拟机技术是实现Java的平台无关性特点的关键。
    • Java虚拟机语言(简称JVML)
    • JVML程序只需与虚拟机交互,不需要关心底层的硬件和操作系统。

参考-慕课-苏州大学-王中卿老师 

原文地址:https://www.cnblogs.com/fangzhiyou/p/12407869.html

时间: 2024-10-15 02:47:49

编译原理-第一章 引论-C和Java编译系统的相关文章

编译原理第一章学习(习题解答)

编译原理 第一章 引论 1.1 练习 1.编译器和解释器之间的区别是什么? 首先,编译器是一个软件系统或者说是一个程序,解释器是语言处理器.其次,编译器是把程序翻译成能被计算机执行的形式并报告翻译过程中发现的源程序的错误,解释器是直接利用用户提供的输入执行源程序中指定的操作. 2.编译器相对于解释器的优点是什么?解释器相对于编译器的优点是什么? 在把用户输入映射成为输出的过程中,由一个编译器产生的机器语言目标程序通常比一个解释器快很多.然而,解释器的错误诊断效果比编译器更好,因为它是逐句翻译源程

【读书笔记】《编译原理》第一章 引论

第一章 引论 第一章 引论 1 语言处理器 2 一个编译器的结构 3 程序设计语言发展历程 5 编译技术的应用 1.1 语言处理器 编译器compiler:将源程序翻译成目标程序,生成目标代码快速,错误诊断效果差. 解释器interpreter:用户提供源程序和输入,产生输出,较慢,错误诊断效果好. java语言处理:Java源程序->字节码bytecode->虚拟机解释执行 语言处理系统:源程序--预处理器preprocessor--经过预处理的源程序--编译器--目标汇编程序(便于输出调试

Functional Programming Principles in ScalaScala函式编程原理 第一章笔记

所有non-trival编程语言都提供了 基本表达式(expression)去表示最简单的表达式 组合表达式的方法 抽象表达式的方法,也就是为表达式引入一个名字去引用它 substitional model 替代模型 sumOfSquares(3,2+2) sumOfSquares(3,4) square(3)+square(4) 9+square(4) 9+16 25 这种模型的核心概念是所有的表达式都规约成值,替代模型在lamada表达式中被形式化,构成了函数式编程的基石 substitio

《操作系统概论》第一章引论读书笔记

计算机系统分为硬件和软件. 硬件主要由:CPU.存储器.输入输出控制系统.各种输入输出设备组成. 软件主要分为:系统软件.支撑软件.以及应用软件. 操作系统定义:一般认为,操作系统是管理计算机系统资源.控制程序执行.改善人机界面和为应用软件提供支持的一种系统软件. 操作系统的作用: 管理计算机系统的资源. 为用户提供方便的使用接口. 具有扩充硬件的功能. 操作系统的功能: 从资源管理的观点看,操作系统的功能可以分为:处理器管理.存储管理.文件管理和设备管理. 处理器管理的主要工作是进行处理器的分

随机过程(方兆本,缪伯其)读书笔记-第一章-引论

第一章 引论 1.1 引言 1.1.1 基本概念和例子 定义1.1: 随机过程就是一族随机变量${X(t), t \in T}$, 其中$t$ 是参数, 属于某个指标集$T$, $T$ 称为参数集. $t$ 一般代表时间. 当$T={0, 1, 2, ,...}$ 也称随机过程为随机序列. 随机变量定义在空间$\Omega$ 上, 所以是随$t$ 与$\omega \in \Omega$ 而变化的, 可以记作$X(t , \omega)$ . 固定一次随机实验, 即取定$\omega_0 \in

操作系统原理 第一章第二章复习

操作系统复习 第一章 操作系统概述 基本概念 吞吐量:单位时间内系统能处理的工作量. 进程:正在动态执行的程序 实时操作系系统:实时计算.计算的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这个结果的时间一类的计算. 操作系统的特征:现代操作系统大多支持多任务,具有并发.共享.虚拟.异步的特征. 单道批处理系统 特性:自动性.顺序性.单道性. 作业独占CPU和内存. 多道批处理系统 特性: 多道性.无序性.调度性.复杂性. 优点:提高CPU的利用率.提高内存和I/O设备的利用率.增加系统吞吐量

编译原理-第二章 一个简单的语法指导编译器-2.4 语法制导翻译

语法制导翻译: 定义:语法制导翻译是通过向一个文法的产生式附加一些规则或程序片段而得到的 功能:给定词法单元流,通过向一个文法产生式附加一些语义动 作,语法制导分析产生语法分析树,并实现翻译动作 相关概念: 属性:表示与某个程序构造相关的任意的量,因为用文法符号(终结符号或非终结符号)来表示程序构造,所以可将属性的概念从程序构造扩展到表示这些构造的文法符号上 综合属性:如果某个属性在语法分析树节点N上的值由N的子节点和N本身的属性值确定,则该属性为综合属性,其性质为只需对语法分析树进行一次自底向

《大道至简》第一章 编程的精义 java伪代码形式

愚公.这位名家身上,浓缩了项目组织者.团队经理.编程人员.技术分析师等众多角色的优秀素质. 愚公移山事件分析: 原始需求:惩山北之塞,出入之迂 项目沟通方式:聚室而某曰 项目目标:毕力平险,指通豫南,达于汉阴 技术方案:扣石垦壤,箕畚运于渤海之尾 技术人员:子孙荷担者三夫 工程管理人员:愚公 外协:邻人京城氏之孀妻,有遗男,始龀,跳往助之 这已经描述了"愚公移山"工程概况.体现了编程人员基本素质.在与"智叟"对答中描述了实现工程的程序,必须的结构:顺序.分支. 循环

第一章开发简单的Java应用程序

1.什么是程序? 程序一词来源于生活,通俗点讲就是把生活的的事用程序编写出来 并执行. 2.为什么要学习Java呢? Java是Sun Microsystems于1995年推出的高级编程语言 JavaSE,JavaEE,javaME以发展成熟 JavaSE:开发和部署在桌面 JavaEE:企业版本帮助开发程序等等 JavaME:Java ME 为在移动设备和嵌入式设备 3.开发程序该如何进行? 分为三步走: 1.编写源程序   2.编译源程序   3.最后运行 4.Java程序框架: publi