⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 requirements.otx

📁 inger小型c编译器源码
💻 OTX
字号:
% requirements.tex% Practical Compiler Construction% Chapter: Requirements% This chapter discusses the requirements for compiling and running the compiler.\chapter{Requirements}        \section{Introduction}        	This chapter specifies the software necessary to either use (run) \langname{} or    	to develop for \langname{}. The version numbers supplied in this text are the version numbers    	of software packages we used. You may well be able to use older versions of this software,    	but it is not guaranteed that this will work. You can always (except in rare cases) use    	newer versions of the software discussed below.    	    \section{Running \langname{}}        	\langname{} was designed for the Linux operating system. It is perfectly possible to run    	\langname{} on other platforms like Windows, and even do development work for \langname{} on non-Linux    	platforms. However, this section discusses the software required to run \langname{} on Linux.    	    	% Linux    	The Linux distribution we used is     	\mbox{RedHat,}\footnote{RedHat Linux 7.2, http://www.redhat.com/apps/download/}    	but other advanced Linux distributions like     	\mbox{SuSE}\footnote{SuSE Linux 8.0, http://www.suse.com/us/private/download/index.html}    	or     	\mbox{Mandrake}\footnote{Mandrake Linux 8.0, http://www.mandrake.com} will do fine.     	     	% inger    	The most elementary package you need to run \langname{} is naturally \langname{}    	itself. It can be downloaded from its repository at     	\mbox{Source Forge.}\footnote{Inger 0.x, http://www.sourceforge.net/projects/inger}    	There are two packages available: the user package, which contains only the compiler     	binary and the user manual, and the development package, which contains the compiler     	source as well. Be sure to download the user version, not the developer version.    	    	% binutils    	As the \langname{} compiler compiles to \mbox{GNU AT\&T} assembly code, the GNU assembler     	\code{as} is required to convert the assembly code to object code. The GNU assembler is part    	of the \mbox{\code{binutils}}    	\mbox{package.}\footnote{Binutils 2.11.90.0.8, http://www.gnu.org/directory/GNU/binutils.html}    	You may use any other    	assembler, provided it supports the \mbox{AT\&T} assembly syntax; \code{as} is the only    	assembler that supports it that we are currently aware of. A linker is also required ---    	we use the GNU linker (which is also part of the \mbox{\code{binutils}} package).    	    	% perl    	Some of the code for \langname{} is generated using scripts written in the Perl scripting    	language. You will need the \mbox{\code{perl}}\footnote{Perl 6, http://www.perl.com}    	interpreter to execute these scripts.    	    	% DJGPP    	If you use a Windows port of \langname{}, you can also use the GNU ports of    	\code{as} and \code{ld} that come with     	\mbox{DJGPP.}\footnote{DJGPP 2.03, http://www.delorie.com or http://www.simtel.net/pub/djgpp}    	DJGPP is a free port of (most of) the GNU tools.    	    	% Acrobat    	It can be advantageous to be able to view this documentation in digital form (as a Portable    	Document File), which is possible with the Acrobat     	\mbox{Reader.}\footnote{Adobe Acrobat 5.0, http://www.adobe.com/products/acrobat/readstep.html}    	The \langname{} website may also offer this documentation in other forms, such as HTML.    			Editing \langname{} source code in Linux can be done with the free editor \mbox{\code{vi},} which is		included with virtually all Linux distributions. You can use any editor you want, though. 		An \langname{} syntax highlighting template for Ultra Edit is available from the \langname{}		archive at Source Forge.				If a Windows binary of the \langname{} compiler is not available or not usable, and you need		to run \langname{} on a Windows platform, you may be able to use the Linux emulator for the        Windows platform,         \mbox{\code{Cygwin},}\footnote{Cygwin 1.11.1p1, http://www.cygwin.com}        to execute the Linux binary.			\section{\langname{} Development}			For development of the \langname{} language, rather than development \emph{with} the \langname{}		language, some additional software packages are required. For development purposes we strongly		recommend that you work on a Linux platform, since we cannot guarantee that all development tools		are available on Windows platforms or work the same way as they do on Linux.				% Automake, Autoconf		The \langname{} binary is built from source using 		\mbox{automake}\footnote{Automake 1.4-p5, http://www.gnu.org/software/automake} and 		\mbox{autoconf}\footnote{Autoconf 2.13, http://www.gnu.org/software/autoconf/autoconf.html}, 		both of which are free GNU software. These packages allow the developer to generate 		makefiles that target the user platform, i.e. use available C compiler and lexical 		scanner generator versions, and warn if no suitable software is available. To 		execute the generated makefiles, GNU \mbox{\code{make}}, which is part of the \mbox{\code{binutils}} 		package, is also required. Most Linux installations should have this software already 		installed.				% GCC		C sources are compiled using the GNU Compiler Collection \mbox{(\code{gcc}).}		\footnote{GCC 2.96, http://www.gnu.org/software/gcc/gcc.html} We used the 		lexical analyzer generator GNU \code{flex}		\footnote{Flex 2.5.4, http://www.gnu.org/software/flex} to generate a lexical scanner.    	    	% CVS    	All \langname{} code is stored in a Concurrent Versioning System repository on a server     	at Source Forge, which may be accessed using the \code{cvs} package.    	\footnote{\code{CVS 1.11.1p1}, http://www.cvshome.org} Note that you must be registered as     	an \langname{} developer to be able to change the contents of the CVS repository.     	Registration can be done through Source Forge.    	    	% LaTeX, MikTeX    	All documentation was written using the \LaTeXe{} typesetting package,     	\footnote{\LaTeXe{}, http://www.latex-project.org} which is also available for Windows    	as the \mbox{Mik\TeX{}}\footnote{Mik\TeX{} 2.2, http://www.miktex.org} system. Editors that come in    	handy when working with \TeX{} sources are Ultra Edit,    	\footnote{Ultra Edit 9.20, http://www.ultraedit.com} which    	supports \TeX{} syntax highlighting, and \mbox{TexnicCenter}    	\footnote{TexnicCenter, http://www.toolscenter.org/products/texniccenter} which is a     	full-fledged \TeX{} editor with many options (although no direct visual feedback ---     	it is a \emph{what you see is what you mean} \mbox{(WYSIWYM)} tool).    	    	% KDevelop    	The \langname{} development package comes with a project definition file for \mbox{KDevelop,}   		an open source clone of Microsoft Visual Studio. If you have a Linux distribution that   		has the X window system with KDE (K Desktop Environment) installed, then you can do development    		work for \langname{} in a graphical environment.   		   		   		   	\section{Required Development Skills}		   			Development on \langname{} requires the following skills:				\begin{itemize}			\item[-]	A working knowledge of the C programming language;			\item[-]	A basic knowlege of the Perl scripting language;			\item[-]	Experience with GNU assembler (specifically, the \mbox{AT\&T} assembly syntax).		\end{itemize}		   						The rest of the skills needed, including working with the lexical analyzer 		generator \code{flex} and writing tree data structures can be acquired from this book. 		Use the bibliography at the end of this chapter to find additional literature that will		help you master all the tools discussed in the preceding sections.				% This bibliography should include some C and gcc books.	\begin{thebibliography}{99}		\bibitem{req_cvs}M. Bar: \emph{Open Source Development with CVS}, Coriolis Group, $2^{nd}$ edition, 2001 		\bibitem{req_gnu_as}D. Elsner: \emph{Using As: The Gnu Assembler}, iUniverse.com, 2001		\bibitem{req_latex_companion}M. Goossens: \emph{The Latex Companion}, Addison-Wesley Publishing, 1993		\bibitem{req_gcc_reference}A. Griffith: \emph{GCC: the Complete Reference}, McGraw-Hill Osborne Media, $1^{st}$ edition, 2002				\bibitem{req_lex_yacc}J. Levine: \emph{Lex \& Yacc}, O'Reilly \& Associates, 1992		\bibitem{req_gnu_programming}M. Kosta Loukides: \emph{Programming with GNU Software}, O'Reilly \& Associates, 1996		\bibitem{req_linuxbible}C. Negus: \emph{Red Hat Linux 8 Bible}, John Wiley \& Sons, 2002		\bibitem{short_latex}Oetiker, T.: \emph{The Not So Short Introduction to \LaTeXe{}}, version 3.16, 2000		\bibitem{req_make}A. Oram: \emph{Managing Projects with Make}, O'Reilly \& Associates, $2^{nd}$ edition, 1991		\bibitem{req_cvs_reference}G. Purdy: \emph{CVS Pocket Reference}, O'Reilly \& Associates, 2000		\bibitem{req_debug_with_gdb}R. Stallman: \emph{Debugging with GDB: The GNU Source-Level Debugger}, Free Software Foundation, 2002		\bibitem{req_autoconf}G.V. Vaughan: \emph{GNU Autoconf, Automake, and Libtool}, New Riders Publishing, $1^{st}$ edition, 2000 		\bibitem{req_perl}L. Wall: \emph{Programming Perl}, O'Reilly \& Associates, $3^rd$ edition, 2000		\bibitem{req_running_linux}M. Welsch: \emph{Running Linux}, O'Reilly \& Associates, $3^rd$ edition, 1999	\end{thebibliography}			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -