Tiny语言编译器简单介绍
生活随笔
收集整理的這篇文章主要介紹了
Tiny语言编译器简单介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.簡單介紹:編譯器是將一種語言翻譯成還有一種語言的程序。編譯器將源程序的代碼作為輸出,從而產生用目標語言編寫的等價程序。比如源碼為C/C++等高級語言,那么目標語言就是目標機器的機器代碼。也就是能夠直接執行的機器代碼(各種二進制)。
以下就是一個編譯過程的簡單樣例:
x=2 (高級語言) MOV x,2 (匯編語言) C7 06 0000 0002 (機器代碼)????
?2.相關程序
???? a.解釋程序(interpreter):它會馬上運行程序而不是編譯完畢后在運行,典型的解釋程序有Java,Lisp等
???? b.匯編程序(assembler):它將匯編語言翻譯成機器代碼
???? c.連接程序(linker):編譯器和匯編程序常常以來其它的頭文件或者資源,連接程序將他們收集到一個可運行文件里
???? d.裝載程序(loader):處理全部的與基地址和起始地址相關的可重定位地址
???? e.編輯器(editor):編寫源碼
???? f.調試程序(debugger):調試程序用的
???? g.描寫敘述器(profiler):描寫敘述程序的執行時間等信息
???? h.項目管理器(project manager):用于項目管理的程序
???
3.編譯的一般步驟
??? 以字符流的形式掃描程序,進行詞法分析。然后進行語法分析,語義分析,源碼優化,代碼生成。目標代碼優化等一般性步驟(之后會重點分析)
4.主要數據結構
記號(token)。語法樹,符號表,常數表,中間代碼,暫時文件
???
5.TINY語言簡單介紹
? a.語句序列用分號隔開
? b.全部變量都是整形變量,且不須要聲明
? c.僅僅有兩個控制語句。if和repeat
? d.if推斷語句必須以end結束,且有可選的else語句
? e.read和write完畢輸入輸出
? f.花括號表示凝視,但不同意嵌套凝視
? g.有<和=兩個比較運算符
? h.有+、-、*、/簡單運算符
以下來看一個簡單樣例:
{ Sample program in TINY language - compute factorial } read x;{input an integer} if 0<x then {don't compute if x<=0} fact := 1; repeat fact := fact*x。 x := x-1 until x = 0; write fact{output factorial of x}end以后會對TINY語言編譯器進行具體介紹的
轉載于:https://www.cnblogs.com/blfbuaa/p/6785679.html
總結
以上是生活随笔為你收集整理的Tiny语言编译器简单介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转载] 常用CASE工具介绍
- 下一篇: 三分钟读懂双十二布局玩法,大促流量销量双