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