腳本編譯器自製
① 《自製編譯器》pdf下載在線閱讀,求百度網盤雲資源
《自製編譯器》[日]青木峰郎電子書網盤下載免費在線閱讀
鏈接:
書名:自製編譯器
作者名:[日]青木峰郎
豆瓣評分:7.7
出版社:人民郵電出版社
出版年份:2016-6
頁數:472
內容介紹:
本書將帶領讀者從頭開始製作一門語言的編譯器。筆者特意為本書設計了CЬ語言,CЬ可以說是C語言的子集,實現了包括指針運算等在內的C語言的主要部分。本書所實現的編譯器就是C Ь語言的編譯器, 是實實在在的編譯器,而非有諸多限制的玩具。另外,除編譯器之外,本書對以編譯器為中心的編程語言的運行環境,即編譯器、匯編器、鏈接器、硬體、運行時環境等都有所提及,介紹了程序運行的所有環節。
作者介紹:
程序員,著有《Ruby程序設計268技(第2版)》《Ruby源代碼完全解說》《linux程序設計》等多部編程相關著作。並積極參與標准庫維護、文檔維護等各種各樣的活動。
② 如何製作arm-linux-gcc編譯工具
一、下載源文件
源代碼文件及其版本:
binutils-2.19.tar.bz2, gcc-core-4.4.4.tar.bz2 gcc-g++-4.4.4.tar.bz2 Glibc-2.7.tar.bz2 Glibc-ports-2.7.tar.bz2 Gmp-4.2.tar.bz2 mpfr-2.4.0.tar.bz2mpc-1.0.1.tar.gz Linux-2.6.25.tar.bz2 (由於我在編譯出錯的過程中,根據出錯的信息修改了相關的C代碼,故而沒有下載相應的補丁)
一般一個完整的交叉編譯器涉及到多個軟體,主要包括bilinguals、cc、glibc等。其中,binutils主要生成一些輔助工具;gcc是用來生成交叉編譯器,主要生成arm-linux-gcc交叉編譯工具,而glibc主要提供用戶程序所需要的一些基本函數庫。
二、建立工作目錄
編譯所用主機型號 fc14.i686,虛擬機選的是VM7.0,Linux發行版選的是Fedora9,
第一次編譯時用的是root用戶(第二次用一般用戶yyz), 所有的工作目錄都在/home/yyz/cross下面建立完成,首先在/home/yyz目錄下建立cross目錄,然後進入工作目錄,查看當前目錄。命令如下:
創建工具鏈文件夾:
[root@localhost cross]# mkdir embedded-toolchains
下面在此文件夾下建立如下幾個目錄:
setup-dir:存放下載的壓縮包;
src-dir:存放binutils、gcc、glibc解壓之後的源文件;
Kernel:存放內核文件,對內核的配置和編譯工作也在此完成;
build-dir :編譯src-dir下面的源文件,這是GNU推薦的源文件目錄與編譯目錄分離的做法;
tool-chain:交叉編譯工具鏈的安裝位;
program:存放編寫程序;
doc:說明文檔和腳本文件;
下面建立目錄,並拷貝源文件。
[root@localhost cross] #cd embedded- toolchains
[root@localhost embedded- toolchains] #mkdir setup-dir src-dir kernel build-dir tool-chain program doc
[root@localhost embedded- toolchains] #ls
build-dir doc kernel program setup-dir src-dir tool-chain
[root@localhost embedded- toolchains] #cd setup-dir
拷貝源文件:
這里我們採用直接拷貝源文件的方法,首先應該修改setup-dir的許可權
[root@localhost embedded- toolchains] #chmod 777 setup-dir
然後直接拷貝/home/yyz目錄下的源文件到setup-dir目錄中,如下圖:
建立編譯目錄:
[root@localhost setup-dir] #cd ../build-dir
[root@localhost build -dir] #mkdir build-binutils build-gcc build-glibc
三、輸出環境變數
輸出如下的環境變數方便我們編譯。
為簡化操作過程。下面就建立shell命令腳本environment-variables:
[root@localhost build -dir] #cd ../doc
[root@localhost doc] #mkdir scripts
[root@localhost doc] #cd scripts
用編輯器vi編輯環境變數腳本envionment-variables:[root@localhost scripts]
#vi envionment-variables
export PRJROOT=/home/yyz/cross/embedded-toolchains
export TARGET=arm-linux
export PREFIX=$PRJROOT/tool-chain
export TARGET_PREFIX=$PREFIX/$TARGET
export PATH=$PREFIX/bin:$PATH
截圖如下:
執行如下語句使環境變數生效:
[root@localhost scripts]# source ./environment-variables
四、建立二進制工具(binutils)
下面將分步介紹安裝binutils-2.19.1的過程。
[root@localhost script] # cd $PRJROOT/src-dir
[root@localhost src-dir] # tar jxvf ../setup-dir/binutils-2.19.1.tar.bz2
[root@localhost src-dir] # cd $PRJROOT/build-dir/build-binutils
創建Makefile:
[root@localhost build-binutils] #../../src-dir/binutils-2.19.1/configure --target=$TARGET --prefix=$PREFIX
在build-binutils目錄下面生成Makefile文件,然後執行make,make install,此過程比較緩慢,大約需要一個15分鍾左右。完成後可以在$PREFIX/bin下面看到我們的新的binutil。
輸入如下命令
[root@localhost build-binutils]#ls $PREFIX/bin
③ 如何編寫一個編譯程序的腳本
Linux中我們安裝軟體或者一些常用操作,都會接觸很多命令,有時在關鍵時刻往往因為忘了一些簡單的命令而苦惱,這時,我們不妨把命令寫成可執行的批量腳本,可以減少很多重復而又容易忘記的代碼,寫成一鍵腳本還有一個好處就是方便遷移,可以直接將寫好的sh文件在其他Linux平台運行。
格式:
文件後綴.sh
第一行代碼需要指定路徑來執行程序
#!/bin/sh
#!/bin/bash
一般一鍵腳本會要求用戶輸入各種選項:
#提示「請輸入姓名」並等待30秒,把用戶的輸入保存入變數name中
read -t 30 -p "請輸入用戶名稱:" name
echo -e "\n"
echo "用戶名為:$name"
#提示「請輸入密碼」並等待30秒,把用戶的輸入保存入變數age中,輸入內容隱藏
read -t 30 -s -p "請輸入用戶密碼:" age
echo -e "\n"
echo "用戶密碼為:$age"
#提示「請輸入性別」並等待30秒,把用戶的輸入保存入變數sex中,只接受一個字元輸入
read -t 30 -n 1 -p "請輸入用戶性別:" sex
echo -e "\n"
echo "性別為$sex"
④ 《兩周自製腳本語言》pdf下載在線閱讀,求百度網盤雲資源
《兩周自製腳本語言》([日]千葉 滋)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:
書名:兩周自製腳本語言
作者:[日]千葉 滋
譯者:陳筱煙
豆瓣評分:8.0
出版社:人民郵電出版社
出版年份:2014-6
頁數:300
內容簡介:
《兩周自製腳本語言》是一本優秀的編譯原理入門讀物。全書穿插了大量輕松風趣的對話,讀者可以隨書中的人物一起從最簡單的語言解釋器開始,逐步添加新功能,最終完成一個支持函數、數組、對象等高級功能的語言編譯器。本書與眾不同的實現方式不僅大幅簡化了語言處理器的復雜度,還有助於拓展讀者的視野。
《兩周自製腳本語言》適合對編譯原理及語言處理器設計有興趣的讀者以及正在學習相關課程的大中專院校學生。同時,已經學習過相關知識、有一定經驗的開發者,也一定能從本書新穎的實現方式中受益良多。
作者簡介:
作者簡介:
千葉滋
東京工業大學研究生院信息技術理工系研究科教授,兼任東京大學研究生院信息技術理工系研究科教授。著有《面向切面入門——從Java語言・面向對象步入AspectJ語言程序設計》《簡明Java程序設計——Great Ideas for Java Programming》《GUI庫機制——軟體設計案例研習》等。
譯者簡介:
陳筱煙
畢業於復旦大學計算機科學與技術系,主要研究方向為跨設備人機交互理論。從大學時期開始接觸Java、JavaScript程序開發,目前對Web應用及智能手機應用開發有濃厚興趣,並參與Android開發文檔翻譯項目。業余開發的移動應用在Google Play商店中已有數十萬次下載。譯作有《JavaScript編程全解》《App,這樣設計才好賣》等。