From chinsan.tw@gmail.com  Tue Jul 25 17:04:02 2006
Return-Path: <chinsan.tw@gmail.com>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id B202216A4DD;
	Tue, 25 Jul 2006 17:04:02 +0000 (UTC)
	(envelope-from chinsan.tw@gmail.com)
Received: from smtp2.bc.hgc.com.tw (smtp2.bc.hgc.com.tw [203.133.1.156])
	by mx1.FreeBSD.org (Postfix) with ESMTP id C0DCD43D46;
	Tue, 25 Jul 2006 17:04:01 +0000 (GMT)
	(envelope-from chinsan.tw@gmail.com)
Received: from smtp2.bc.hgc.com.tw (u14-109.u203-187.giga.net.tw [203.187.14.109])
	by smtp2.bc.hgc.com.tw (Postfix) with SMTP id 83D102F068;
	Wed, 26 Jul 2006 01:03:59 +0800 (CST)
Received: by smtp2.bc.hgc.com.tw (sSMTP sendmail emulation); Wed, 26 Jul 2006 01:09:10 +0800
Message-Id: <20060725170359.83D102F068@smtp2.bc.hgc.com.tw>
Date: Wed, 26 Jul 2006 01:09:10 +0800
From: chinsan <chinsan.tw@gmail.com>
Reply-To: chinsan <chinsan.tw@gmail.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc: vanilla@FreeBSD.org
Subject: [UPDATE] zh_TW: Update developers-handbook/tools to SVN#900 !
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         100812
>Category:       docs
>Synopsis:       [UPDATE] zh_TW: Update developers-handbook/tools to SVN#900 !
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jul 25 17:10:15 GMT 2006
>Closed-Date:    Wed Jul 26 04:02:12 GMT 2006
>Last-Modified:  Wed Jul 26 04:02:12 GMT 2006
>Originator:     chinsan
>Release:        FreeBSD 6.1-STABLE i386
>Organization:
FreeBSD Taiwan
>Environment:
System: FreeBSD chinsan2.twbbs.org 6.1-STABLE FreeBSD 6.1-STABLE #1: Fri Jun 2 16:44:35 CST 2006 root@chinsan2.twbbs.org:/usr/obj/usr/src/sys/GENERIC i386


	
>Description:
- Update developers-handbook/tools to SVN#900 !
  patch URL http://chinsan2.twbbs.org/chinsan/zh_TW.Big5.20060725.developers-handbook3.diff

- ChangeLog(Trac Timeline)
  https://opensvn.csie.org/traccgi/freebsddoc/timeline

- Original translator: kevinblue
  Revised by chinsan

>How-To-Repeat:
	
>Fix:

	

--- zh_TW.Big5.20060725.developers-handbook3.diff begins here ---
--- zh_TW.Big5/books/developers-handbook.orig/tools/chapter.sgml	Wed Jul 26 00:52:45 2006
+++ zh_TW.Big5/books/developers-handbook/tools/chapter.sgml	Wed Jul 26 00:53:23 2006
@@ -1,7 +1,8 @@
 <!--
      The FreeBSD Documentation Project
 
-     $FreeBSD: doc/zh_TW.Big5/books/developers-handbook/tools/chapter.sgml,v 1.1 2006/06/17 10:22:44 vanilla Exp $
+     $FreeBSD$
+     Original revision: 1.46
 -->
 
 <chapter id="tools">
@@ -19,127 +20,111 @@
     </authorgroup>
   </chapterinfo>
 
-  <title>Programming Tools</title>
-  <sect1 id="tools-synopsis"><title>Synopsis</title>
+  <title>{}ou</title>
+  <sect1 id="tools-synopsis"><title></title>
 
-    <para>This chapter is an introduction to using some of the
-      programming tools supplied with FreeBSD, although much of it
-      will be applicable to many other versions of &unix;.  It does
-      <emphasis>not</emphasis> attempt to describe coding in any
-      detail.  Most of the chapter assumes little or no previous
-      programming knowledge, although it is hoped that most
-      programmers will find something of value in it.</para>
+    <para>
+      NЦpϥΤ@ FreeBSD ҴѪ{}ou(programing tools)A
+      ҤЪu{bL &unix; W]iϥΡA
+      b <emphasis>ä|</emphasis> մyzg{ɪCӲӸ`A
+      jgTO]AHeSΥuּƪg{gA
+      LA٬OƱjhƪ{}oHqso@ǱҵoC
+    </para>
 
   </sect1>
 
-  <sect1 id="tools-intro"><title>Introduction</title>
+  <sect1 id="tools-intro"><title>²</title>
 
-    <para>FreeBSD offers an excellent development environment.
-      Compilers for C, C++, and Fortran and an assembler come with the
-      basic system, not to mention a Perl interpreter and classic &unix;
-      tools such as <command>sed</command> and <command>awk</command>.
-      If that is not enough, there are many more compilers and
-      interpreters in the Ports collection.  FreeBSD is very
-      compatible with standards such as <acronym>&posix;</acronym> and
-      <acronym>ANSI</acronym> C, as well with its own BSD heritage, so
-      it is possible to write applications that will compile and run
-      with little or no modification on a wide range of
-      platforms.</para>
-
-    <para>However, all this power can be rather overwhelming at first
-      if you have never written programs on a &unix; platform before.
-      This document aims to help you get up and running, without
-      getting too deeply into more advanced topics.  The intention is
-      that this document should give you enough of the basics to be
-      able to make some sense of the documentation.</para>
-
-    <para>Most of the document requires little or no knowledge of
-      programming, although it does assume a basic competence with
-      using &unix; and a willingness to learn!</para>
+    <para>
+      FreeBSD Ѥ@ӫD`Ϊ}oҡA
+      pO CBC++BFortran M assembler(զXy)sĶ(compiler),
+      b FreeBSD wg]tb򥻪tΤF
+      O Perl MLз &unix; uAO<command>sed</command> H <command>awk</command>A
+      pGA٬OıoAFreeBSDb Ports collection ٴѨLsĶMĶ(interpreter),
+      FreeBSD ۮe\hзǡAO <acronym>&posix;</acronym> M <acronym>ANSI</acronym> CA
+      M٦~Ӫ BSD ǲΡC
+      ҥHb FreeBSD Wg{ݭקγhyLקANiHb\hxWsĶBC
+    </para>
+
+    <para>
+      LצpANAqӨSb &unix; xWgL{A]iHPFreeBSD OHLkܩڪgH]OC
+      ؼдNOUAֳtWAӼȮɤݲ`JӦhiDDA
+      åBѤ@ǰ¦AHAiHAѧڭ̦bǤC
+    </para>
+
+    <para>
+      eänDAo{}ogAΪ̧Au@IIgӤwC
+      LAڭ̰]Awg| &unix; tΪ򥻾ާ@A
+      ӥB󭫭nOAЫO֩ǲߪߺAI
+    </para>
 
   </sect1>
 
   <sect1 id="tools-programming">
-    <title>Introduction to Programming</title>
+    <title>Programming </title>
 
-    <para>A program is a set of instructions that tell the computer to
-      do various things; sometimes the instruction it has to perform
-      depends on what happened when it performed a previous
-      instruction.  This section gives an overview of the two main
-      ways in which you can give these instructions, or
-      <quote>commands</quote> as they are usually called.  One way
-      uses an <firstterm>interpreter</firstterm>, the other a
-      <firstterm>compiler</firstterm>.  As human languages are too
-      difficult for a computer to understand in an unambiguous way,
-      commands are usually written in one or other languages specially
-      designed for the purpose.</para>
+    <para>
+      ²檺A{uO@OXFӳoǫOOΨӧiDqӭn@ǨƱC
+      ɭԡAOMe@ӫOGөwC
+      N|iDA 2 ӥDnkAAiHqUFoǫ(instruction)  <quote>RO(commands)</quote>C
+      Ĥ@ӤkNO <firstterm>Ķ(interpreter)</firstterm>A
+      ӲĤGӤkO <firstterm>sĶ(compiler)</firstterm>C
+      ѩqӨAHyyNLҽkӤzѡA
+      ]RO(commands)N`|H@(Φh){ygAΨӫܹqҭn檺Swʧ@C
+    </para>
 
     <sect2>
-      <title>Interpreters</title>
+      <title>Ķ</title>
 
-      <para>With an interpreter, the language comes as an environment,
-	where you type in commands at a prompt and the environment
-	executes them for you.  For more complicated programs, you can
-	type the commands into a file and get the interpreter to load
-	the file and execute the commands in it.  If anything goes
-	wrong, many interpreters will drop you into a debugger to help
-	you track down the problem.</para>
-
-      <para>The advantage of this is that you can see the results of
-	your commands immediately, and mistakes can be corrected
-	readily.  The biggest disadvantage comes when you want to
-	share your programs with someone.  They must have the same
-	interpreter, or you must have some way of giving it to them,
-	and they need to understand how to use it.  Also users may not
-	appreciate being thrown into a debugger if they press the
-	wrong key! From a performance point of view, interpreters can
-	use up a lot of memory, and generally do not generate code as
-	efficiently as compilers.</para>
-
-      <para>In my opinion, interpreted languages are the best way to
-	start if you have not done any programming before.  This kind
-	of environment is typically found with languages like Lisp,
-	Smalltalk, Perl and Basic.  It could also be argued that the
-	&unix; shell (<command>sh</command>, <command>csh</command>) is itself an
-	interpreter, and many people do in fact write shell
-	<quote>scripts</quote> to help with various
-	<quote>housekeeping</quote> tasks on their machine.  Indeed, part
-	of the original &unix; philosophy was to provide lots of small
-	utility programs that could be linked together in shell
-	scripts to perform useful tasks.</para>
+      <para>
+        ϥΪĶɡAҨϥΪ{yNܦ@ӷ|MAʪҡC
+        bROܦCWWROɡAĶ|YɰөROC
+        b{AiHҦQUFROβοJYɮ׸̭hA
+        MIsĶhŪɮסAåBAgboɮפOC
+        pGҤUO~͡AjhƪĶ|iJҦ(debugger)A
+        åBܬ~TAHK{C
+    </para>
+
+      <para>
+	oؤ覡nBbGiHߨݨO浲GAHο~]itץC
+	۹諸A̤jaBKOAQAg{ɵLHɡAoǤHnA@˪ĶC
+	ӥBOѤFAL̤]n|ϥΪĶĶ{~C
+	MϥΪ̤]Ʊ椣p߫ANiJҦӤұC
+	NĲvӨAĶ|ϥΨܦhOA
+	ӥBoĶ{Aq`ä|sĶҽsĶ{󦳮ĲvC
+	</para>
+
+      <para>
+	̭ӤH{ApGAeSǹL{yA̦nǾǲߪĶy(interpreted languages)A
+	O LispASmalltalkAPerl M Basic OA&unix;  shell O <command>sh</command> M <command>csh</command>
+	̥NOĶAƹWAܦhHb̦ۤvWgU shell <quote>script</quote>A
+	ӶQU <quote>housekeeping(@)</quote> ȡC
+	&unix; ϥέǤ@NOѤjqpuA
+	èϥ shell script ӲզXBγoǤpuAHKu@󦳮ĲvC
     </sect2>
 
     <sect2>
-      <title>Interpreters available with FreeBSD</title>
+      <title>FreeBSD ѪĶ</title>
 
-      <para>Here is a list of interpreters that are available from 
-	  the &os; Ports Collection, with a brief discussion of
-	  some of the more popular interpreted languages.</para>
-
-      <para>Instructions on how to get and install applications
-	from the Ports Collection can be found in the
-	<ulink url="&url.books.handbook;/ports-using.html">
-      Ports section</ulink> of the handbook. 
+      <para> 
+	Uo䦳 &os; Ports Collection ҴѪĶMA٦Qפ@Ǥw諸Ķy</para>
 
+      <para>
+        ܩpϥ Ports Collection w˪AiѾ\ FreeBSD Handbook  
+        <ulink url="&url.books.handbook;/ports-using.html">Ports`</ulink>C
       <variablelist>
 	<varlistentry>
 	  <term><acronym>BASIC</acronym></term>
 
 	  <listitem>
-	    <para>Short for Beginner's All-purpose Symbolic
-	      Instruction Code.  Developed in the 1950s for teaching
-	      University students to program and provided with every
-	      self-respecting personal computer in the 1980s,
-	      <acronym>BASIC</acronym> has been the first programming
-	      language for many programmers.  It is also the foundation
-	      for Visual Basic.</para>
-
-	    <para>The Bywater Basic Interpreter can be found in the
-	      Ports Collection as
-	      <filename role="package">lang/bwbasic</filename>
-	      and the Phil Cockroft's Basic Interpreter
-	      (formerly Rabbit Basic) is available as
-	      <filename role="package">lang/pbasic</filename>.</para>
+	    <para>BASIC O Beginner's ALL-purpose Symbolic Instruction Code YgC
+	      BASIC  1950 ~N}loiA̪}ooMyتOFоɷɪjǾǥͦpg{C
+	      F 1980A<acronym>BASIC</acronym>wgOܦh programmer Ĥ@Ӿǲߪ{yFC
+	      ~ABASIC ]O Visual Basic ¦C</para>
+
+	    <para>FreeBSD Ports Collection ] BASIC ĶC
+	      Bywater Basic Ķb <filename role="package">lang/bwbasic</filename>C
+	       Phil Cockroft's Basic Ķ(]s Rabbit Basic)b <filename role="package">lang/pbasic</filename>C
 	  </listitem>
 	</varlistentry>
 
@@ -147,29 +132,22 @@
 	  <term>Lisp</term>
 
 	  <listitem>
-	    <para>A language that was developed in the late 1950s as
-	      an alternative to the <quote>number-crunching</quote>
-	      languages that were popular at the time.  Instead of
-	      being based on numbers, Lisp is based on lists; in fact
-	      the name is short for <quote>List Processing</quote>.
-	      Very popular in <acronym>AI</acronym> (Artificial Intelligence)
-	      circles.</para>
-
-	    <para>Lisp is an extremely powerful and sophisticated
-	      language, but can be rather large and unwieldy.</para>
-
-	    <para>Various implementations of Lisp that can run on &unix;
-	      systems are available in the Ports Collection for &os;.
-	      GNU Common Lisp can be found as
-	      <filename role="package">lang/gcl</filename>.  CLISP
-	      by Bruno Haible and Michael Stoll is available as
-	      <filename role="package">lang/clisp</filename>.
-	      For CMUCL, which includes a highly-optimizing compiler too, or
-	      simpler Lisp implementations like SLisp, which implements most
-	      of the Common Lisp constructs in a few hundred lines of C code,
-	      <filename role="package">lang/cmucl</filename> and
-	      <filename role="package">lang/slisp</filename> are available
-	      respectively.</para>
+	    <para>LISP Ob 1950 ~N}loi@ӪĶyAӥB LISP NO@ 
+	      <quote>number-crunching</quote> languages(tijqB⪺{y)AbɺO@ӴM{yC
+	      LISP FOƦr(numbers)AӬO(lists)C
+	      ӳ̯ܥX LISP S⪺aNbG LISP O <quote>List Processing</quote> YgC
+	      b<acronym>Huz(Artificial Intelligence, AI)</acronym>W LISP UΫD`MC</para>
+
+	    <para>LISP OD`jB{yAOIO{X|D`jӥBHާ@C</para>
+
+	    <para>j LISP ĶiHb &unix; tΤWB@AM &os;  Ports Collection ]C
+	      GNU Common Lisp b <filename role="package">lang/gcl</filename>A
+	      Bruno Haible M Michael Stoll  CLISP b <filename role="package">lang/clisp</filename>
+	      A~ CMUCL(]t@Ӥwg̨ΤƪsĶ)A
+	      HΨL²ƪ LISP Ķ(pH C yg SLispAuδXʦ{XN@jh Common Lisp \)
+	      hOOb <filename role="package">lang/cmucl</filename> H 
+	      <filename role="package">lang/slisp</filename>C
+	      </para>
 	  </listitem>
 	</varlistentry>
 
@@ -177,14 +155,11 @@
 	  <term>Perl</term>
 
 	  <listitem>
-	    <para>Very popular with system administrators for writing
-	      scripts; also often used on World Wide Web servers for
-	      writing <acronym>CGI</acronym> scripts.</para>
-
-	    <para>Perl is available in the Ports Collection as 
-	      <filename role="package">lang/perl5</filename> for all
-	      &os; releases, and is installed as <command>/usr/bin/perl</command>
-	      in the base system 4.X releases.</para>
+	    <para>tκ޲z̦ӨA̷R perl Ӽg scripts H޲zDA
+	      Pɤ]g`ΨӼg WWW DW <acronym>CGI</acronym> Script {C</para>
+
+	    <para>Perl b Ports Collection  <filename role="package">lang/perl5</filename>C
+	       &os; 4.X hO Perl ˦b <command>/usr/bin/perl</command>C</para>
 	  </listitem>
 	</varlistentry>
 
@@ -192,19 +167,15 @@
 	  <term>Scheme</term>
 
 	  <listitem>
-	    <para>A dialect of Lisp that is rather more compact and
-	      cleaner than Common Lisp.  Popular in Universities as it
-	      is simple enough to teach to undergraduates as a first
-	      language, while it has a high enough level of
-	      abstraction to be used in research work.</para>
-
-	    <para>Scheme is available from the Ports Collection as
-	      <filename role="package">lang/elk</filename> for the
-		Elk Scheme Interpreter.  The MIT Scheme Interpreter
-		can be found in
-		<filename role="package">lang/mit-scheme</filename>
-		and the SCM Scheme Interpreter in
-		<filename role="package">lang/scm</filename>.</para>
+	    <para>Scheme O LISP t@AScheme SINO Common LISP ٭n²䦳OC
+	      ѩ Scheme ²AҥHܦhjǮӷ@Ĥ@{yоǱЧC
+	      ӥBsHӻ]iHֳt}oL̩һݭn{C
+	      </para>
+
+	    <para>Scheme b <filename role="package">lang/elk</filename>A
+	      Elk Scheme Ķ(ѳ¬ٲzuǰ|ҵoi Scheme Ķ)b 
+	      <filename role="package">lang/mit-scheme</filename>A
+	      SCM Scheme Interpreter b <filename role="package">lang/scm</filename>C</para>
 	  </listitem>
 	</varlistentry>
 
@@ -212,11 +183,9 @@
 	  <term>Icon</term>
 
 	  <listitem>
-	    <para>Icon is a high-level language with extensive
-	      facilities for processing strings and structures.
-	      The version of Icon for &os; can be found in the
-	      Ports Collection as
-	      <filename role="package">lang/icon</filename>.</para>
+	    <para>Icon ݰ{yAIcon 㦳jjr(String)Mc(Structure)BzOC
+	      &os; Ports Collection Ҧ Icon ĶhOb 
+	      <filename role="package">lang/icon</filename>C</para>
 	  </listitem>
 	</varlistentry>
 
@@ -224,16 +193,11 @@
 	  <term>Logo</term>
 
 	  <listitem>
-	    <para>Logo is a language that is easy to learn, and has
-	      been used as an introductory programming language in
-	      various courses.  It is an excellent tool to work with
-	      when teaching programming in small ages, as it makes the
-	      creation of elaborate geometric shapes an easy task even
-	      for very small children.</para>
-
-	    <para>The lastest version of Logo for &os; is available from
-	      the Ports Collection in
-	      <filename role="package">lang/logo</filename>.</para>
+	    <para>Logo Oخeǲߪ{yA̱`b@Ǳоǽҵ{Qӷ@}YdҡC
+	      pGnpBͶ}lW{yҪܡALogo O۷ܡC
+	      ]AYϹpBͨӻAn Logo ӨqXhιϧάO۷PeC</para>
+
+	    <para>Logo b &os; Ports Collection ̷shOb <filename role="package">lang/logo</filename>C</para>
 	  </listitem>
 	</varlistentry>
 
@@ -241,17 +205,13 @@
 	  <term>Python</term>
 
 	  <listitem>
-	    <para>Python is an Object-Oriented, interpreted language.
-	      Its advocates argue that it is one of the best languages
-	      to start programming with, since it is relatively easy
-	      to start with, but is not limited in comparison to other
-	      popular interpreted languages that are used for the
-	      development of large, complex applications (Perl and
-	      Tcl are two other languages that are popular for such tasks).</para>
-
-	    <para>The latest version of Python is available from the
-	      Ports Collection in
-	      <filename role="package">lang/python</filename>.</para>
+	    <para>Python OɦVĶyA
+	      Python @`Oź Python O̦nJ{yC
+	      M Python iH²檺}lAONN|鵹LĶy(O Perl M Tcl)A
+	      ƹҩ Python ]iHӶ}ojBε{C
+	      </para>
+
+	    <para>&os; Ports Collection b <filename role="package">lang/python</filename>C</para>
 	  </listitem>
 	</varlistentry>
 
@@ -259,14 +219,11 @@
 	  <term>Ruby</term>
 
 	  <listitem>
-	    <para>Ruby is an interpreter, pure object-oriented programming
-	      language.  It has become widely popular because of its easy
-	      to understand syntax, flexibility when writing code, and the
-	      ability to easily develop and maintain large, complex
-	      programs.</para>
+	    <para>Ruby OªɦVĶyC
+	      Ruby ثeD`yA]bL{ykcAbg{ɪuʡA
+	      HΤѥͨ㦳oi@jMתOC</para>
 
-	    <para>Ruby is available from the Ports Collection as
-	      <filename role="package">lang/ruby18</filename>.</para> 
+	    <para>&os; Ports Collection b <filename role="package">lang/ruby8</filename>C</para> 
 	  </listitem>
 	</varlistentry>
 
@@ -274,70 +231,50 @@
 	  <term>Tcl and Tk</term>
 
 	  <listitem>
-	    <para>Tcl is an embeddable, interpreted language, that has
-	      become widely used and became popular mostly because of its portability to many
-	      platforms.  It can be used both for quickly writing
-	      small, prototype applications, or (when combined with
-	      Tk, a GUI toolkit) fully-fledged, featureful
-	      programs.</para>
-
-	    <para>Various versions of Tcl are available as ports 
-	      for &os;.  The latest version, Tcl 8.4, can be found in
-	      <filename role="package">lang/tcl84</filename>.</para>
+	    <para>Tcl OOĶyA Tcl iHpsxBΪ]O Tcl өʡC
+	      Tcl ]iHֳtoi@²O㦳{Ϊ̨㦳\઺{C</para>
+
+	    <para>Tcl \hib &os; WB@Aӳ̷s Tcl  Tcl 8.4A
+	      &os; Ports Collection b <filename role="package">lang/tcl84</filename>C</para>
 	  </listitem>
 	</varlistentry>
       </variablelist>
     </sect2>
 
     <sect2>
-      <title>Compilers</title>
-
-      <para>Compilers are rather different.  First of all, you write
-	your code in a file (or files) using an editor.  You then run
-	the compiler and see if it accepts your program.  If it did
-	not compile, grit your teeth and go back to the editor; if it
-	did compile and gave you a program, you can run it either at a
-	shell command prompt or in a debugger to see if it works
-	properly.
+      <title>sĶ</title>
 
+      <para>sĶMĶ̬ۤ񪺸ܡAǤPANO{XβμgJɮ׸̭A
+         MᥲsĶӸյ۽sĶ{ApGsĶҼg{AN@ק{A
+         sĶBA{sĶɡC
+         ~A]iHbܩROCAΦbAsĶn{ݬݥO_iHB@C
 	<footnote>
-	  <para>If you run it in the shell, you may get a core
-	    dump.</para>
+	  <para>pGbܩROCUA򦳥i| core dumpC</para>
 	</footnote></para>
 
-      <para>Obviously, this is not quite as direct as using an
-	interpreter.  However it allows you to do a lot of things
-	which are very difficult or even impossible with an
-	interpreter, such as writing code which interacts closely with
-	the operating system&mdash;or even writing your own operating
-	system! It is also useful if you need to write very efficient
-	code, as the compiler can take its time and optimize the code,
-	which would not be acceptable in an interpreter.  Moreover,
-	distributing a program written for a compiler is usually more
-	straightforward than one written for an interpreter&mdash;you
-	can just give them a copy of the executable, assuming they
-	have the same operating system as you.</para>
-
-      <para>Compiled languages include Pascal, C and C++.  C and C++
-	are rather unforgiving languages, and best suited to more
-	experienced programmers; Pascal, on the other hand, was
-	designed as an educational language, and is quite a good
-	language to start with.  FreeBSD does not include Pascal
-	support in the base system, but both GNU Pascal Compiler (GPC)
-	and the Free Pascal Compiler
-	are available in the ports collection as
-	<filename role="package">lang/gpc</filename> and
-	<filename role="package">lang/fpc</filename>.</para>
-
-      <para>As the edit-compile-run-debug cycle is rather tedious when
-	using separate programs, many commercial compiler makers have
-	produced Integrated Development Environments
-	(<acronym>IDE</acronym>s for short).  FreeBSD does not include
-	an IDE in the base system, but <filename role="package">devel/kdevelop</filename> is
-	available in the ports tree and many use
-	<application>Emacs</application> for this purpose.  Using
-	<application>Emacs</application> as an IDE is discussed in
-	<xref linkend="emacs">.</para>
+      <para>ܩ㪺AϥνsĶäĶiHWo쵲GC
+        ަpAsĶ\A@ܦhĶiΪ̬OF쪺ƱC
+        ҦpGgM@~tαKʪ{AƦܬOAۤvg@~tΡI
+        AQngXĲv{ɡAsĶKWγFC
+        sĶiHbsĶɶK̨ΤƧA{AOĶoC
+        ӽsĶPĶ̤jtObGAQAgn{t~@xW]ɡA
+        AunNsĶsĶXӪiɡAsWKiHA
+        ӪĶhnDsWAnt@xWۦPĶA
+        ~ĶA{I
+	</para>
+
+      <para>sĶ{y]t PascalBC M C++A
+        C M C++ O@ӿ˩MOQyAOܾAX㦳g窺 ProgrammerC
+        Pascal O@ӳ]pΨӱоǥΪ{yAӥB]ܾAXΨӤJA
+        &os; w]èS Pascal Xi base system A
+        O GNU Pascal Compiler M Free Pascal Compiler iOb 
+        <filename role="package">lang/gpc</filename> M <filename role="package">lang/fpc</filename> C</para>
+
+      <para>pGAΤP{ӼgsĶ{A_as-sĶ--oӴ`֩w|ܷФHA
+        F²ơBK{}oy{Aܦhӷ~sĶtӶ}loiҿת <acronym>IDE</acronym>(Integrated Development Environments) }oҡA
+        FreeBSD w]èS IDE Xi base system AOAizL <filename role="package">devel/kdevelop</filename> w kdevelop 
+        Ψϥ <application>Emacs</application>  IDE }oҡC
+        b᭱ <xref linkend="emacs"> MDNСApH <application>Emacs</application> ӧ@ IDE }oҡC</para>
     </sect2>
 
 
@@ -345,127 +282,95 @@
 
 
   <sect1 id="tools-compiling">
-    <title>Compiling with <command>cc</command></title>
+    <title> <command>cc</command> ӽsĶ{</title>
+
+      <para>dҥuw GNU C compiler M GNU C++ compiler @A
+        oӦb FreeBSD base system NFA
+         <command>cc</command>  <command>gcc</command> NiHC
+        ܩApΪĶ͵{Aq`ibĶνuW컡A]AحzC</para>
 
-    <para>This section deals only with the GNU compiler for C and C++,
-      since that comes with the base FreeBSD system.  It can be
-      invoked by either <command>cc</command> or <command>gcc</command>.  The
-      details of producing a program with an interpreter vary
-      considerably between interpreters, and are usually well covered
-      in the documentation and on-line help for the
-      interpreter.</para>
-
-    <para>Once you have written your masterpiece, the next step is to
-      convert it into something that will (hopefully!) run on FreeBSD.
-      This usually involves several steps, each of which is done by a
-      separate program.</para>
+      <para>AgAǧ@AUӫKOoӵ{iHb FreeBSD WA
+        q`oǭn@ǨBJ~৹AǨBJhݭnP{ӧC</para>
 
     <procedure>
       <step>
-	<para>Pre-process your source code to remove comments and do
-	  other tricks like expanding macros in C.</para>
+        <para>wBz(Pre-process)A{XA{ѡAMLޥA
+          O expanding(Xj) C  marcoC</para>
       </step>
 
       <step>
-	<para>Check the syntax of your code to see if you have obeyed
-	  the rules of the language.  If you have not, it will
-	  complain!</para>
+        <para>T{A{ykO_T C/C++ WwApGSŦXܡAsĶ|X{ĵiC</para>
       </step>
 
       <step>
-	<para>Convert the source code into assembly
-	  language&mdash;this is very close to machine code, but still
-	  understandable by humans.  Allegedly.
-
+        <para>NlXনզXy &mdash; y(machine code)D`۪AbHizѪd(ڻӬOo)C
 	  <footnote>
-	    <para>To be strictly accurate, <command>cc</command> converts the
-	      source code into its own, machine-independent
-	      <firstterm>p-code</firstterm> instead of assembly language at
-	      this stage.</para>
+        <para>Y满_ӡAboӶq <command>cc</command> äOul{নզXyA
+          ӬOର machine-independent  <firstterm>p-code</firstterm>C</para>
 	  </footnote></para>
       </step>
 
       <step>
-	<para>Convert the assembly language into machine
-	  code&mdash;yep, we are talking bits and bytes, ones and
-	  zeros here.</para>
+        <para>զXyনy &mdash; OAo̻yNO`쪺 bit M byteA]NO 1 M 0C</para>
       </step>
 
       <step>
-	<para>Check that you have used things like functions and
-	  global variables in a consistent way.  For example, if you
-	  have called a non-existent function, it will
-	  complain.</para>
+        <para>T{{Ψ쪺禡IsBܼƬO_TA|ҨӻGpYIsFsb禡AsĶ|ĵiC</para>
       </step>
 
       <step>
-	<para>If you are trying to produce an executable from several
-	  source code files, work out how to fit them all
-	  together.</para>
+        <para>pG{Oѵ{XɮרӽsĶAsĶ|X_ӡC</para>
       </step>
 
       <step>
-	<para>Work out how to produce something that the system's
-	  run-time loader will be able to load into memory and
-	  run.</para>
+        <para>sĶ|tdͪFAtΤW run-time loader iH{JO餺C</para>
       </step>
 
       <step>
-	<para>Finally, write the executable on the filesystem.</para>
+        <para>̫|sĶɦsbwФWC</para>
       </step>
     </procedure>
 
-    <para>The word <firstterm>compiling</firstterm> is often used to refer to
-      just steps 1 to 4&mdash;the others are referred to as
-      <firstterm>linking</firstterm>.  Sometimes step 1 is referred to as
-      <firstterm>pre-processing</firstterm> and steps 3-4 as
-      <firstterm>assembling</firstterm>.</para>
-
-    <para>Fortunately, almost all this detail is hidden from you, as
-      <command>cc</command> is a front end that manages calling all these
-      programs with the right arguments for you; simply typing</para>
-
+    <para>q` <firstterm>sĶ(compiling)</firstterm> O 1  4 ӨBJC
+      &mdash; LBJh٬ <firstterm>s(linking)</firstterm>A
+      ɭԨBJ 1 ]iHO <firstterm>wBz(pre-processing)</firstterm>A
+      ӨBJ 3 BJ 4 hO <firstterm>Ķ(assembling)</firstterm>C</para>
+
+    <para>BOAAiHβz|HWӸ`AsĶ|۰ʧC
+      ] <command>cc</command> uOOӫeݵ{(front end)A|̷ӥTѼƨөIs{ABzC
+      uݥG
     <screen>&prompt.user; <userinput>cc foobar.c</userinput></screen>
 
-    <para>will cause <filename>foobar.c</filename> to be compiled by all the
-      steps above.  If you have more than one file to compile, just do
-      something like</para>
+    <para>WzO| <filename>foobar.c</filename> }lsĶAçWzʧ@C
+      pGA\hɮ׻ݭnsĶAХUCOYiG</para>
 
     <screen>&prompt.user; <userinput>cc foo.c bar.c</userinput></screen>
 
-    <para>Note that the syntax checking is just that&mdash;checking
-      the syntax.  It will not check for any logical mistakes you may
-      have made, like putting the program into an infinite loop, or
-      using a bubble sort when you meant to use a binary
-      sort.
-
+    <para>Oyk~ˬdNO &mdash; ºˬdyk~P_A
+      Ӥ|A˴޿~ApGLjAάOƧǤ覡Q binary sort o˦ bubble sortC
       <footnote>
-	<para>In case you did not know, a binary sort is an efficient
-	  way of sorting things into order and a bubble sort
-	  is not.</para>
+        <para>һ binary sort M bubble sort DA
+          bwƧǦnǦCAbinary sort jĲv| bubble sort nC</para>
       </footnote></para>
 
-    <para>There are lots and lots of options for <command>cc</command>, which
-      are all in the manual page.  Here are a few of the most important
-      ones, with examples of how to use them.</para>
+    <para><command>cc</command> D`hﶵAizLuWUӬdC
+      Uu@ǥnBnﶵAH@ҤlC</para>
 
     <variablelist>
       <varlistentry>
-	<term><option>-o <replaceable>filename</replaceable></option></term>
+	<term><option>-o <replaceable>ɦW</replaceable></option></term>
 
 	<listitem>
-	  <para>The output name of the file.  If you do not use this
-	    option, <command>cc</command> will produce an executable called
-	    <filename>a.out</filename>.
+	  <para><option>-o</option> sĶ᪺ɦWApGSϥγoﶵܡA
+       sĶn{w]ɦWN|O <filename>a.out</filename>
 
 	    <footnote>
-	      <para>The reasons for this are buried in the mists of
-		history.</para>
+	      <para>ܩ <option>-o</option> ]AhO@ξvgFC</para>
 	    </footnote></para>
 
 	  <informalexample>
-	    <screen>&prompt.user; <userinput>cc foobar.c</userinput>               <lineannotation>executable is <filename>a.out</filename></lineannotation>
-&prompt.user; <userinput>cc -o foobar foobar.c</userinput>     <lineannotation>executable is <filename>foobar</filename></lineannotation>
+	    <screen>&prompt.user; <userinput>cc foobar.c</userinput>               <lineannotation>ɴNO <filename>a.out</filename></lineannotation>
+&prompt.user; <userinput>cc -o foobar foobar.c</userinput>     <lineannotation>ɴNO <filename>foobar</filename></lineannotation>
 	    </screen>
 	  </informalexample>
 	</listitem>
@@ -475,19 +380,17 @@
 	<term><option>-c</option></term>
 
 	<listitem>
-	  <para>Just compile the file, do not link it.  Useful for toy
-	    programs where you just want to check the syntax, or if
-	    you are using a <filename>Makefile</filename>.</para>
+	  <para>ϥ <option>-c</option> ɡAu|sĶlXAӤ@s(linking)C
+	    uQT{ykO_TΨϥ Makefile ӽsĶ{ɡAoӿﶵD`ΡC</para>
 
 	  <informalexample>
-	    <screen>&prompt.user; <userinput>cc -c foobar.c</userinput>
+	    <screen>
+        &prompt.user; <userinput>cc -c foobar.c</userinput>
 	    </screen>
 	  </informalexample>
 
-	  <para>This will produce an <firstterm>object file</firstterm> (not an
-	    executable) called <filename>foobar.o</filename>.  This
-	    can be linked together with other object files into an
-	    executable.</para>
+	  <para>o|ͥs <filename>foobar</filename>  <firstterm>object file</firstterm>(D)C
+	    oɥiHPL object file sb@_AӦɡC</para>
 	</listitem>
       </varlistentry>
 
@@ -495,33 +398,25 @@
 	<term><option>-g</option></term>
 
 	<listitem>
-	  <para>Create a debug version of the executable.  This makes
-	    the compiler put information into the executable about
-	    which line of which source file corresponds to which
-	    function call.  A debugger can use this information to show
-	    the source code as you step through the program, which is
-	    <emphasis>very</emphasis> useful; the disadvantage is that
-	    all this extra information makes the program much bigger.
-	    Normally, you compile with <option>-g</option> while you
-	    are developing a program and then compile a <quote>release
-	      version</quote> without <option>-g</option> when you are
-	    satisfied it works properly.</para>
+	  <para>
+	    <option>-g</option> N|@ǵ gdb ΪT]ihɸ̭AҿתTҦpG
+	    {bĴXXBӵ{ĴX氵禡IsCT<emphasis>D`</emphasis>nΡC
+	    INOG{ӻAB~T|sĶXӪ{ΨǡC
+	    <option>-g</option> AήɾbG{٦b}oɨϥδNnA
+	    ӷAnXA <quote>o檩(release version)</quote>
+	    Ϊ̽T{{iB@`ܡAN <option>-g</option> oﶵFC</para>
 
 	  <informalexample>
 	    <screen>&prompt.user; <userinput>cc -g foobar.c</userinput>
 	    </screen>
 	  </informalexample>
 
-	  <para>This will produce a debug version of the
-	    program.
-
+	  <para>oʧ@|ͦtTɡC
 	    <footnote>
-	      <para>Note, we did not use the <option>-o</option> flag
-		to specify the executable name, so we will get an
-		executable called <filename>a.out</filename>.
-		Producing a debug version called
-		<filename>foobar</filename> is left as an exercise for
-		the reader!</para>
+	      <para>Ъ`NA]WҨS <option>-o</option> HwɦW١A
+	        ҥHɷ|O <filename>a.out</filename> oɡC
+	        Anp󲣥 <filename>foobar</filename> ɨätTA
+	        oNdݬݭ̽mߤ@UoC</para>
 	    </footnote></para>
 	</listitem>
       </varlistentry>
@@ -530,45 +425,38 @@
 	<term><option>-O</option></term>
 
 	<listitem>
-	  <para>Create an optimized version of the executable.  The
-	    compiler performs various clever tricks to try to produce
-	    an executable that runs faster than normal.  You can add a
-	    number after the <option>-O</option> to specify a higher
-	    level of optimization, but this often exposes bugs in the
-	    compiler's optimizer.  For instance, the version of
-	    <command>cc</command> that comes with the 2.1.0 release of
-	    FreeBSD is known to produce bad code with the
-	    <option>-O2</option> option in some circumstances.</para>
+	  <para><option>-O</option> |ͳ̨ΤƪɡA
+	  sĶ|ϥΤ@ǧޥA{iH]񥼸g̨Τƪ{٧֡A
+	  AiHbjg O ᭱[WƦrӫAQn̨ΤƼhšC
+	  ǪΤ٬O|@ǿ~A|Ҩӻbb FreeBSD 2.10 release ϥ <command>cc</command> 
+	  åBw <option>-O2</option> ɡAbYǱΤU|Ϳ~ɡC</para>
 
-	  <para>Optimization is usually only turned on when compiling
-	    a release version.</para>
+	  <para>unXo檩BΪ̥[t{ɡA~ݭnϥγ̨ΤƿﶵC
+	    </para>
 
 	  <informalexample>
 	    <screen>&prompt.user; <userinput>cc -O -o foobar foobar.c</userinput>
 	    </screen>
 	  </informalexample>
 
-	  <para>This will produce an optimized version of
-	    <filename>foobar</filename>.</para>
+	  <para>o| <filename>foobar</filename> ɪ̨ΤƪC</para>
 	</listitem>
       </varlistentry>
     </variablelist>
 
-    <para>The following three flags will force <command>cc</command>
-      to check that your code complies to the relevant international
-      standard, often referred to as the <acronym>ANSI</acronym>
-      standard, though strictly speaking it is an
-      <acronym>ISO</acronym> standard.</para>
+    <para>
+      HUTӰѼƱN|j <command>cc</command> T{{XO_ŦX@ǰڼзǪWdA
+      ]NOq` <acronym>ANSI</acronym> зǡA
+       <acronym>ANSI</acronym> Y <acronym>ISO</acronym> зǡC
+      </para>
 
     <variablelist>
       <varlistentry>
 	<term><option>-Wall</option></term>
 
 	<listitem>
-	  <para>Enable all the warnings which the authors of
-	    <command>cc</command> believe are worthwhile.  Despite the
-	    name, it will not enable all the warnings
-	    <command>cc</command> is capable of.</para>
+	  <para><option>-Wall</option>  <command>cc</command>  @̩һ{ȱo`NҦĵiTC
+	    LoWri|y~ѡAƹWå <command>cc</command> ү`N쪺UĵiTC</para>
 	</listitem>
       </varlistentry>
 
@@ -576,11 +464,8 @@
 	<term><option>-ansi</option></term>
 
 	<listitem>
-	  <para>Turn off most, but not all, of the
-	    non-<acronym>ANSI</acronym>&nbsp;C features provided by
-	    <command>cc</command>.  Despite the name, it does not
-	    guarantee strictly that your code will comply to the
-	    standard.</para>
+	  <para><option>-ansi</option>  <command>cc</command> SYǯSD ANSI C зǥ\C
+	    LoWri|y~ѡAƹWäOҧA{|ŦX ANSI зǡC</para>
 	</listitem>
       </varlistentry>
 
@@ -588,74 +473,57 @@
 	<term><option>-pedantic</option></term>
 
 	<listitem>
-	  <para>Turn off <emphasis>all</emphasis>
-	    <command>cc</command>'s non-<acronym>ANSI</acronym>&nbsp;C
-	    features.</para>
+	  <para> <command>cc</command> үSD <acronym>ANSI</acronym>  C зǥ\C</para>
 	</listitem>
       </varlistentry>
     </variablelist>
 
-    <para>Without these flags, <command>cc</command> will allow you to
-      use some of its non-standard extensions to the standard.  Some
-      of these are very useful, but will not work with other
-      compilers&mdash;in fact, one of the main aims of the standard is
-      to allow people to write code that will work with any compiler
-      on any system.  This is known as <firstterm>portable
-	code</firstterm>.</para>
-
-    <para>Generally, you should try to make your code as portable as
-      possible, as otherwise you may have to completely rewrite the
-      program later to get it to work somewhere else&mdash;and who
-      knows what you may be using in a few years time?</para>
+    <para>FoǰѼơA<command>cc</command> ٤\AϥΤ@B~ѼƨNзǰѼơAB~ѼƫD`ΡA
+      OڤWäOҦsĶѳoǰѼơC
+      ӼзǨӼg{̥DnتNOAƱAgXӪ{iHbҦsĶWsĶBL~A
+      {iHFWzتɡAN٬ <firstterm>portable code(өʨ}n{X)</firstterm>C</para>
+
+    <para>@ӻAbg{ɴNn`NyөʡzC
+      _hCQ{t~@xW]ɭԡANioݭng{C</para>
 
     <informalexample>
       <screen>&prompt.user; <userinput>cc -Wall -ansi -pedantic -o foobar foobar.c</userinput></screen>
     </informalexample>
 
-    <para>This will produce an executable <filename>foobar</filename>
-      after checking <filename>foobar.c</filename> for standard
-      compliance.</para>
+    <para>WzO|T{ <filename>foobar.c</filename> ykO_ŦXзǡA
+      åBͦW <filename>foobar</filename> ɡC</para>
 
     <variablelist>
       <varlistentry>
 	<term><option>-l<replaceable>library</replaceable></option></term>
 
 	<listitem>
-	  <para>Specify a function library to be used at link time.</para>
+	  <para>iD gcc bs(linking){ɧAݭnΨ쪺禡wW١C</para>
 
-	  <para>The most common example of this is when compiling a
-	    program that uses some of the mathematical functions in C.
-	    Unlike most other platforms, these are in a separate
-	    library from the standard C one and you have to tell the
-	    compiler to add it.</para>
-
-	  <para>The rule is that if the library is called
-	    <filename>lib<replaceable>something</replaceable>.a</filename>,
-	    you give <command>cc</command> the argument
-	    <option>-l<replaceable>something</replaceable></option>.
-	    For example, the math library is
-	    <filename>libm.a</filename>, so you give
-	    <command>cc</command> the argument <option>-lm</option>.
-	    A common <quote>gotcha</quote> with the math library is
-	    that it has to be the last library on the command
-	    line.</para>
+	  <para>̱`pNOAAb{ϥΤF C ƾǨ禡wA
+	    L@~x@˪OAoǼƾǨ禡bзǨ禡w(library)A
+	    ]sĶäDo禡wW١AAiDsĶn[W~C</para>
+
+	  <para>oWh²ApGӨ禡ws <filename>lib<replaceable>something</replaceable>/a</filename>A
+	    NbsĶɥ[WѼ <option>-l<replaceable>something</replaceable></option> ~C
+	    |ҨӻAƾǨ禡ws <filename>libm.a</filename>A
+	    ҥHA <command>cc</command> ѼƴNO <option>-lm</option>C
+	    @뱡pUAq`|oѼƥbO̫C
+	    </para>
 
 	  <informalexample>
 	    <screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput>
 	    </screen>
 	  </informalexample>
 
-	  <para>This will link the math library functions into
-	    <filename>foobar</filename>.</para>
+	  <para>WoO| gcc ƾǨ禡w@sAHKA{iHIs禡wtƾǨ禡C</para>
 
-	  <para>If you are compiling C++ code, you need to add
-	    <option>-lg++</option>, or <option>-lstdc++</option> if
-	    you are using FreeBSD 2.2 or later, to the command line
-	    argument to link the C++ library functions.
-	    Alternatively, you can run <command>c++</command> instead
-	    of <command>cc</command>, which does this for you.
-	    <command>c++</command> can also be invoked as
-	    <command>g++</command> on FreeBSD.</para>
+	  <para>pGAbsĶ{O C++ {XAA٥B~w <option>-lg++</option> Ϊ̬O 
+	    <option>-lstdc++</option>C
+	    pGA FreeBSD O 2.2(t)H᪩A
+	    AiHΫO <command>c++</command> ӨN <command>cc</command>C
+	    b FreeBSD W <command>c++</command> ]iH <command>g++</command> NC
+	    </para>
 
 	  <informalexample>
 	    <screen>&prompt.user; <userinput>cc -o foobar foobar.cc -lg++</userinput>     <lineannotation>For FreeBSD 2.1.6 and earlier</lineannotation>
--- zh_TW.Big5.20060725.developers-handbook3.diff ends here ---


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: vanilla 
State-Changed-When: Wed Jul 26 04:02:11 UTC 2006 
State-Changed-Why:  
Committed, thanks. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=100812 
>Unformatted:
