High-level structure of a simple compiler高級結構的簡單編譯器

1.lexical analysis,which analyzes the character string presented to it and divides it up into tokens that are legal members of the vocabulary of the language in which the program is written (and may produce error messages if the character string is not parseable into a string of legal tokens);

2.syntactic analysis or parsing,which processes the sequence of tokens and produces an intermediate-level representation,such as a parse  tree or a sequential intermediate code,and a symbol  table that records the identifiers used in the program  and their attibutes.

3.checking of the program for static-semantic validity(or semantic checking),which takes as input the intermediate code and symbol table and determines whether the program satisfiers  the staic-semantic properties required by the source language.

4.code generation,which transforms the intermediate code into equivalent machine code in the form of a relocatable object module or directly runnable object code.

1.詞法分析,它分析呈現給它的字符串,並將其劃分為令牌,這些令牌是編寫程序的語言詞彙的合法成員(如果字符串不能解析成字符串,則可能產生錯誤消息。一串合法代幣);

2.語法分析或解析,它處理令牌序列並產生中間級表示,例如解析樹或順序中間代碼,以及記錄程序中使用的標識符及其屬性的符號表。

3.檢查程序的靜態語義有效性(或語義檢查),它將中間代碼和符號表作為輸入,並確定程序是否滿足源語言所需的基本語義屬性。

4.代碼生成,它以可重定位目標模塊或直接可運行目標代碼的形式將中間代碼轉換為等效的機器代碼。

原文地址:https://www.cnblogs.com/hoganben/p/10372414.html

时间: 2024-08-03 14:12:28

High-level structure of a simple compiler高級結構的簡單編譯器的相关文章

Android開發高級組件

Android開發高級組件--ScrollView(滾動視圖組件)1.手機屏幕的高度有限,當需要顯示多組信息時,ScrollView視圖可以合理的安排這些組件,浏覽是可以自動進行滾屏顯示.ScrollView是一個實現滾屏的組件,只要將需要滾屏的組件添加到ScrollView中即可.ScrollView之支持垂直滾動,HorizontalScrollView支持水平滾動. 2.ScrollView層次結構如下:   java.lang.Object      android.view.View 

浏览器的主要构成High Level Structure

浏览器的主要组件包括: 1.     用户界面- 包括地址栏.后退/前进按钮.书签目录等,也就是你所看到的除了用来显示你所请求页面的主窗口之外的其他部分 2.     浏览器引擎- 用来查询及操作渲染引擎的接口 3.     渲染引擎- 用来显示请求的内容,例如,如果请求内容为html,它负责解析html及css,并将解析后的结果显示出来 4.     网络- 用来完成网络调用,例如http请求,它具有平台无关的接口,可以在不同平台上工作 5.     UI 后端- 用来绘制类似组合选择框及对话

大数据技术之_29_MySQL 高級面试重点串讲_02_Mysql 简介+Linux 版的安装+逻辑架构介绍+性能优化+性能分析+查询截取分析+分区分库分表简介+锁机制+主从复制

第1章 Mysql 简介1.1 概述1.2 高级 MySQL第2章 Mysql Linux 版的安装2.1 下载地址2.2 检查当前系统是否安装过 mysql2.3 修改 Mysql 配置文件位置2.4 修改字符集和数据存储路径2.5 MySQL 的安装位置说明2.6 Mysql 配置文件说明2.7 Mysql 的数据存放目录第3章 Mysql 逻辑架构介绍3.1 总体概览3.2 查询说明第4章 Mysql 性能优化4.1 影响 mysql 的性能因素4.2 查询与索引优化分析4.2.1 性能下

SQL Server 2012 AlwaysOn高可用配置之九:添加侦听器

9.   添加侦听器 9.1 点击"添加侦听器" 9.2 输入侦听器名称和端口,点击"添加" 9.3 输入侦听器IP,点击"确定" 9.4 点击"确定" 9.5 成功创建完成侦听器后如下" 9.6 在AD中自动生成相应的对象 9.7 在DNS自动生成相应的DNS记录 SQL Server 2012 AlwaysOn高可用配置篇成功完结 -----------------------------------------

C#高級------数据字典练习

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace out_ref { class Program { static void Main(string[] args) { //把123替换为一二三 string str = "1一 2二 3三"; string[]strs = str.Sp

file_get_contents高級用法

首先解決file_get_contents的超時問題,在超時返回錯誤後就象js中的settimeout那樣進行一次嘗試,錯誤超過3次或者5次後就確認為無法連線伺服器而徹底放棄.這裡就簡單介紹兩種解決方法: 一.增加超時的時間限制 注意:set_time_limit只是設定你的PHP程式的超時時間,而不是file_get_contents函數讀取URL的超時時間.我一開始以為set_time_limit也能影響到file_get_contents,後來經測試是無效的.真正的修改file_get_c

VLC祥解

功能部份: VLC媒體播放器的核心是libvlc ,它提供了界面,應用處理功能,如播放列表管理,音頻和視頻解碼和輸出,線程系統.所有libvlc源文件設在的/src目錄及其子目錄: # config/ :從命令行和配置文件加載配置,提供功能模塊的讀取和寫入配置 # control/: 提供動作控制功能,如播放/暫停,音量管理,全屏,日誌等. # extras/: 大多是平台的特殊代碼 # modules/: 模塊管理 # network/: 提供網絡接口(socket管理,網絡錯誤等) # os

品牌影響力研究評估方法探討

2011年,聚划算在各類媒體上投放了大量廣告,迅速傳播了聚划算的品牌形象,在非淘寶用戶中培養了品牌認知,同時也在淘寶用戶中鞏固了品牌理解,從而對聚划算提升品牌價值起到積極作用.在投放廣告前,用研團隊Q3時曾對聚划算的品牌影響力進行了考察,著重於六個主要指標:——熟悉度:用戶知道並且了解該品牌的程度,反映市場的表現和地位——流行度:流行的/大眾接受的品牌,反映市場的表現和地位——相關性:品牌以及產品是否適合目標人群,是品牌資產的基礎——獨特性:該品牌區別於其他品牌,反映品牌超越競爭對手的能力和品牌

簡易 Cluster 架設、架构

http://linux.vbird.org/linux_server/0600cluster.php近年來因為數值模式模擬的盛行,所以『平行運算』的架構也就越來越重要了!什麼是數值模擬呢?主要就是藉由一些物理理論去開發出來的一些『計算公式』,而這些計算公式藉由程式語言(例如C.Fortran等等)實際的將他編譯成為可執行的程式,最常見的例如中央氣象局不是每天都會預報天氣嗎?這個預報的動作就是利用數值計算去演算出來的.另外,還有空氣品質模式模擬,也是經過運算出來的,除此之外,例如天文.物理.水文