脚本编译器自制
① 《自制编译器》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,这样设计才好卖》等。