[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
www/gnu rms-lisp.zh-cn.html po/rms-lisp.zh-cn-e...
From: |
GNUN |
Subject: |
www/gnu rms-lisp.zh-cn.html po/rms-lisp.zh-cn-e... |
Date: |
Wed, 3 Nov 2021 23:30:16 -0400 (EDT) |
CVSROOT: /web/www
Module name: www
Changes by: GNUN <gnun> 21/11/03 23:30:16
Modified files:
gnu : rms-lisp.zh-cn.html
gnu/po : rms-lisp.zh-cn-en.html rms-lisp.zh-cn.po
Log message:
Automatic update by GNUnited Nations.
CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/gnu/rms-lisp.zh-cn.html?cvsroot=www&r1=1.5&r2=1.6
http://web.cvs.savannah.gnu.org/viewcvs/www/gnu/po/rms-lisp.zh-cn-en.html?cvsroot=www&r1=1.4&r2=1.5
http://web.cvs.savannah.gnu.org/viewcvs/www/gnu/po/rms-lisp.zh-cn.po?cvsroot=www&r1=1.17&r2=1.18
Patches:
Index: rms-lisp.zh-cn.html
===================================================================
RCS file: /web/www/www/gnu/rms-lisp.zh-cn.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- rms-lisp.zh-cn.html 2 Oct 2020 08:29:05 -0000 1.5
+++ rms-lisp.zh-cn.html 4 Nov 2021 03:30:15 -0000 1.6
@@ -1,16 +1,30 @@
<!--#set var="ENGLISH_PAGE" value="/gnu/rms-lisp.en.html" -->
<!--#include virtual="/server/header.zh-cn.html" -->
-<!-- Parent-Version: 1.77 -->
+<!-- Parent-Version: 1.96 -->
+<!-- This page is derived from /server/standards/boilerplate.html -->
+<!--#set var="TAGS" value="gnu-history" -->
+<!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
<!-- This file is automatically generated by GNUnited Nations! -->
<title>æçLispç»ååGNU Emacsçå¼å - GNUå·¥ç¨ -
èªç±è½¯ä»¶åºéä¼</title>
+<style type="text/css" media="print,screen"><!--
+a[href*='#foot-'] { font-size: .94em; }
+-->
+</style>
<!--#include virtual="/gnu/po/rms-lisp.translist" -->
<!--#include virtual="/server/banner.zh-cn.html" -->
+<!--#include virtual="/gnu/gnu-breadcrumb.zh-cn.html" -->
+<!--GNUN: OUT-OF-DATE NOTICE-->
+<!--#include virtual="/server/top-addendum.zh-cn.html" -->
+<div class="article reduced-width">
<h2>æçLispç»ååGNU Emacsçå¼å</h2>
-<blockquote><p>ï¼Richard Stallmanå¨å½é
Lisp大ä¼ä¸çè°è¯è®°å½ï¼2002å¹´10æ28æ¥ï¼</p></blockquote>
+<div class="infobox">
+<p>Richard Stallmanå¨å½é
Lisp大ä¼ä¸çè°è¯è®°å½ï¼2002å¹´10æ28æ¥ã</p>
+</div>
+<hr class="thin" />
<p>ç±äºæé常çæ¼è®²é½åLispæ å
³ï¼æä»å¤©è®²å®ä»¬ä¸åéãæ以æå°ä¸å¾ä¸å³å
´åæ¥ãæçèä¸ç涯åäºå¤ªå¤Lispç¸å
³çå·¥ä½ï¼å
æ¤æè¿æ¯å¯ä»¥è®²ä¸äºæ趣çäºæ
çã</p>
@@ -22,7 +36,7 @@
<p>å½æå¨<abbr title="Massachusetts Institute of
Technologyï¼éº»ççå·¥å¦é¢">MIT</abbr>å¼å§å·¥ä½æ¶ï¼æåJonL
Whiteä¸èµ·çæ£å¼å§å®ç°Lispè¯è¨ãæä¸æ¯è¢«JonLï¼èæ¯è¢«Russ
-Noftskeræå°äººå·¥æºè½å®éªå®¤çï¼è¿ä¸ç¹æ讽åºï¼æ³æ³æ¥ä¸æ¥åçç亗ä»ä¸å®ççåææé£ä¸å¤©äºã</p>
+Noftskeræå°äººå·¥æºè½å®éªå®¤çï¼è¿ä¸ç¹æ讽åºï¼æ³æ³æ¥ä¸æ¥åçç亗—ä»ä¸å®ççåææé£ä¸å¤©äºã</p>
<p>å¨1970年代ï¼æççæ´»è¿æ²¡æ被æ人çäºä»¶æ¿æ²»åä¹åï¼æåªæ¯ä¸æå°ä¸ä¸ªæ¥ä¸ä¸ªå°ä¸ºåç§ç¨åºæ·»å
æ©å±ï¼å
¶ä¸å¤æ°åLispæ å
³ãä¸è¿ï¼å
¶é´ï¼æåäºä¸ä¸ªææ¬ç¼è¾å¨ï¼å«EmacsãEmacsçæ趣ä¹å¤å¨äºå®æä¸ä¸ªç¼ç¨è¯è¨ï¼ç¨æ·çç¼è¾å½ä»¤å¯ä»¥ç¨è¿ä¸ªè§£éæ§è¯è¨ç¼åï¼è¿æ
·ä½ å°±å¯ä»¥å¨ç¼è¾æ¶å è½½æ°çç¼è¾å½ä»¤ãä½ å¯ä»¥ä¿®æ¹ä½
æ£å¨ç¨çç¼è¾ç¨åºå¹¶ä¸ç»§ç»ç¼è¾ãè¿æ
·ï¼æ们就æäºä¸ä¸ªé¤äºç¼ç¨è¿å¯åå
¶ä»æç¨ä¹äºçç³»ç»ï¼èä¸ä½
å¨ä½¿ç¨æ¶è¿å¯ä»¥å¯¹å®è¿è¡ç¼ç¨ãæä¸ç¥éEmacsæ¯ä¸æ¯ç¬¬ä¸ä¸ªè¿æ
ፌᴌ
·ï¼ä½æ¯ä½ä¸ºç¼è¾å¨å®ç¡®å®æ¯ç¬¬ä¸ä¸ªã</p>
@@ -30,50 +44,49 @@
<p>æåç Emacs ä¸å¸¦ Lispãå
¶åºå±è¯è¨ãä¸ä¸ªé解éæ§è¯è¨—æ¯ PDP-10
æ±ç¼è¯è¨ãæ们ç¼åç解éå¨å®é
ä¸ä¸æ¯ä¸º Emacs
åçï¼å®æ¯ä¸º <abbr title="Text Editor and COrrector">TECO</abbr>
ç¼åçãTECO
-æ¯æ们çææ¬ç¼è¾å¨ï¼ä¹æ¯ä¸ä¸ªæå
¶ä¸éçç¼ç¨è¯è¨ï¼è½æå¤ä¸éå°±æå¤ä¸éãå
¶åå
æ¯å®æ¬æ¥å°±ä¸æ¯ä½ä¸ºç¼ç¨è¯è¨è®¾è®¡çï¼å®æ¯ä½ä¸ºç¼è¾å¨åå½ä»¤è¯è¨è®¾è®¡çãæ¯å¦ï¼å½ä»¤‘5l’ææ毑移å¨5è¡’ï¼æè
稑i’å ä¸ä¸ä¸ªå符串ï¼åå ä¸
+æ¯æ们çææ¬ç¼è¾å¨ï¼ä¹æ¯ä¸ä¸ªæå
¶ä¸éçç¼ç¨è¯è¨ï¼è½æå¤ä¸éå°±æå¤ä¸éãå
¶åå
æ¯å®æ¬æ¥å°±ä¸æ¯ä½ä¸ºç¼ç¨è¯è¨è®¾è®¡çï¼å®æ¯ä½ä¸ºç¼è¾å¨åå½ä»¤è¯è¨è®¾è®¡çãæ¯å¦ï¼å½ä»¤<code>5l</code>æææ¯<code>移å¨5è¡</code>ï¼æè
ç¨<code>i</code>å ä¸ä¸ä¸ªå符串ï¼åå ä¸
ESC æé®æ¥æå
¥è¯¥å符串ãä½ å¯ä»¥è¾å
¥ä»£è¡¨ä¸ç³»åå½ä»¤çå符串ï¼è¿å«å½ä»¤å符串ãä½ å¯ä»¥ç¨ ESC
ESC åç»å°¾ï¼è¿æ ·è¯¥ä¸²å½ä»¤å°±æ§è¡äºã</p>
-<p>ä¸è¿ï¼äººä»¬æ³è¦æ©å±è¯¥è¯è¨ä½¿ä¹å¸¦ä¸ç¼ç¨è½åï¼æ以人们就添å
äºä¸äºåè½ãä¾å¦ï¼ææ©æ·»å çå°±æ循ç¯ç»æï¼å°±æ¯<
->ãä½
æä¸è¥¿æ¾å¨è¿ä¸¤ä¸ªç¬¦å·ä¹é´ï¼å®ä»¬å°±å¾ªç¯äºãè¿æä¸äºæ¦æ¶©çå½ä»¤ç¨æ¥å®ä¹éåºå¾ªç¯çæ¡ä»¶ã为äºæé
Emacsï¼æ们<a
-href="#foot-1">(1)</a>æ·»å
äºå¯ä»¥å建带å称åå½æ°çåè½ãå¨æ¤ä¹åï¼æç¹å Basic
+<p>ä¸è¿ï¼äººä»¬æ³è¦æ©å±è¯¥è¯è¨ä½¿ä¹å¸¦ä¸ç¼ç¨è½åï¼æ以人们就添å
äºä¸äºåè½ãä¾å¦ï¼ææ©æ·»å
çå°±æ循ç¯ç»æï¼å°±æ¯<code>< ></code>ãä½
æä¸è¥¿æ¾å¨è¿ä¸¤ä¸ªç¬¦å·ä¹é´ï¼å®ä»¬å°±å¾ªç¯äºãè¿æä¸äºæ¦æ¶©çå½ä»¤ç¨æ¥å®ä¹éåºå¾ªç¯çæ¡ä»¶ã为äºæé
+Emacsï¼æ们 <a href="#foot-1">[1]</a>æ·»å
äºå¯ä»¥å建带å称åå½æ°çåè½ãå¨æ¤ä¹åï¼æç¹å Basic
è¯è¨ï¼åå½æ°åªè½æä¸ä¸ªåæ¯çå称ãè¿å¯¹ç¼å大åç¨åºæ¥è¯´æç¹é¾ï¼æ以æ们就添å
äºé¿æ件ååè½ãå®é
ä¸ï¼è¿æä¸äºç¸å½å¤æçåè½ï¼æ认为 Lisp ç
unwind-protect åè½å°±æ¥èª TECOã</p>
-<p>æ们å¼å§æ·»å
ä¸äºç¸å½å¤æçåè½ï¼é½æ¯ç¨æ们æç¥çé£ä¸ªæä¸éçè¯æ³å®æçï¼èå®æ¯å¯è¡ç—人们ç»ç©¶è½å¤ä½¿ç¨å®æ¥å®æ大åç¨åºãè¿éï¼ææ¾çæè®å°±æ¯ä½¿ç¨è¯¸å¦
+<p>æ们å¼å§æ·»å
ä¸äºç¸å½å¤æçåè½ï¼é½æ¯ç¨æ们æç¥çé£ä¸ªæä¸éçè¯æ³å®æçï¼èå®æ¯å¯è¡ç——人们ç»ç©¶è½å¤ä½¿ç¨å®æ¥å®æ大åç¨åºãè¿éï¼ææ¾çæè®å°±æ¯ä½¿ç¨è¯¸å¦
TECO è¿æ
·ä¸æ¯ä¸ºç¼ç¨è®¾è®¡çè¯è¨æ¯ä¸ä¸ªé误ãæ建æ©å±çè¯è¨ä¸è½æ¯äºååæ³çç¼ç¨è¯è¨ï¼å®åºè¯¥æç
§ç¼ç¨è¯è¨æ¥è®¾è®¡ãäºå®ä¸ï¼æ们åç° Lisp
æ¯åè¿ä»¶äºçæä½³è¯è¨ã</p>
-<p>Bernie Greenbergæ¯æ¤äºçåç°è
<a
href="#foot-2">(2)</a>ãä»ç¨Multics
+<p>Bernie Greenbergæ¯æ¤äºçåç°è
 <a
href="#foot-2">[2]</a>ãä»ç¨Multics
MacLispåäºä¸ä¸ªEmacsï¼èä¸ä»ä½¿ç¨MacLispç¼åå½ä»¤çæ¹å¼ç´æªäºå½ãè¿ä¸ªç¼è¾å¨æ¬èº«å®å
¨æ¯ç¨Lispç¼åçãMultics
Emacsæ¯ä¸ä¸ªå·¨å¤§çæå—ç¼åæ°çç¼è¾å½ä»¤æ¯å¦æ¤çæ¹ä¾¿ï¼ä»¥è³äºä»åå
¬å®¤éçç§ä¹¦ä»¬é½å¼å§å¦ä¹
æä¹ç¨äºãä»ä»¬ä½¿ç¨çæ¯ä¸ä¸ªä»ç»å¦ä½æ©å±Emacsçæåï¼æåé没说è¿å°±æ¯ç¼ç¨ãå
æ¤ï¼ç§ä¹¦ä»¬å¹¶ä¸è®¤ä¸ºä»ä»¬å¨ç¼ç¨ï¼ä¹å°±æ²¡è¢«åè·ãä»ä»¬é
读æåï¼åç°èªå·±ä¹å¯ä»¥åä¸å°æç¨çäºï¼ä»ä»¬å¦ä¼äºç¼ç¨ã</p>
-<p>è¿æ ·ï¼Bernieçå°ä¸ä¸ªåºç¨ç¨åº—为ä½
å®æä»»å¡çç¨åº—å¦æå
ç½®äºLispï¼å¹¶ä¸äººä»¬å¯ä»¥ç¼åLispç¨åºæ¥æ©å±è¯¥åºç¨ç¨åºï¼é£ä¹å®å®é
ä¸å°±æ¯äººä»¬å¦ä¹
ç¼ç¨çä¸ä¸ªå¥½æ¹æ³ãè¿ç»äºäººä»¬ç¼åå®ç¨å°ç¨åºçæºä¼ï¼èè¿å¨å¤æ°å
¶ä»åºåæ¯ä¸å¯è½çã人们被èªå·±çå®ç¨ç¨åºé¼å±ç—å°±å¨æå°é¾çé¶æ®µ—å°±å¨ä»ä»¬ä¸ç¸ä¿¡èªå·±å¯ä»¥ç¼ç¨çæ¶åï¼ç´å°ä»ä»¬æåæ为ç¨åºåã</p>
+<p>è¿æ ·ï¼Bernieçå°ä¸ä¸ªåºç¨ç¨åº——为ä½
å®æä»»å¡çç¨åº—å¦æå
ç½®äºLispï¼å¹¶ä¸äººä»¬å¯ä»¥ç¼åLispç¨åºæ¥æ©å±è¯¥åºç¨ç¨åºï¼é£ä¹å®å®é
ä¸å°±æ¯äººä»¬å¦ä¹
ç¼ç¨çä¸ä¸ªå¥½æ¹æ³ãè¿ç»äºäººä»¬ç¼åå®ç¨å°ç¨åºçæºä¼ï¼èè¿å¨å¤æ°å
¶ä»åºåæ¯ä¸å¯è½çã人们被èªå·±çå®ç¨ç¨åºé¼å±ç—å°±å¨æå°é¾çé¶æ®µ—å°±å¨ä»ä»¬ä¸ç¸ä¿¡èªå·±å¯ä»¥ç¼ç¨çæ¶åï¼ç´å°ä»ä»¬æåæ为ç¨åºåã</p>
<p>æ¤æ¶ï¼äººä»¬å¼å§æèä»ä»¬è¦ææ ·å¨ä¸ä¸ªå¹¶æ²¡æå
¨é¨ Lisp
æ¯æçå¹³å°ä¸åå°è¿ä¸åãMultics MacLisp
-æ¢æç¼è¯å¨ï¼ä¹æ解é娗å®æ¯ä¸ä¸ªå®æ´ç Lisp
系绗ä½æ¯äººä»¬æ³è¦çæ¯å¨å
¶ä»æ²¡æ Lisp
+æ¢æç¼è¯å¨ï¼ä¹æ解é娗—å®æ¯ä¸ä¸ªå®æ´ç Lisp
系绗—ä½æ¯äººä»¬æ³è¦çæ¯å¨å
¶ä»æ²¡æ Lisp
ç¼è¯å¨çç³»ç»ä¸å®ç°ç±»ä¼¼çä¸è¥¿ãä¸è¿ï¼å¦æä½ æ²¡æ Lisp
ç¼è¯å¨ï¼ä½ æ æ³ç¨ Lisp
-ç¼åæ´ä¸ªç¼è¾å¨—å¦æåªè½è¿è¡è§£éå¨çè¯ï¼å®å¤ªæ
¢äºï¼å°¤å
¶æ¯æ¾ç¤ºå·æ°ãå æ¤æ们å¼åäºä¸é¡¹æ··åææ¯ãå
¶ææ³æ¯åä¸ä¸ª Lisp
+ç¼åæ´ä¸ªç¼è¾å¨——å¦æåªè½è¿è¡è§£éå¨çè¯ï¼å®å¤ªæ
¢äºï¼å°¤å
¶æ¯æ¾ç¤ºå·æ°ãå æ¤æ们å¼åäºä¸é¡¹æ··åææ¯ãå
¶ææ³æ¯åä¸ä¸ª Lisp
解éå¨åç¼è¾å¨çåºå±é¨åï¼æä»ä»¬ç»åå¨ä¸èµ·ï¼è¿æ
·ç¼è¾å¨å°±å
ç½®äº Lisp
åè½ãè¿äºå°±æ¯æ们éè¦ä¼åçé¨åãè¿é¡¹ææ¯æ¯æ们已ç»å¨åå§ç
Emacs
ä¸ææè¯å°å®è·µäºçææ¯ï¼å
为æ们ç¨æºå¨è¯è¨éæ°ç¼åäºæäºç¸å½ä¸å±çåè½ï¼å¹¶ä¸æå®ä»¬ä½ä¸º
TECO çåºæ¬å½ä»¤ãæ¯å¦ï¼TECO
æä¸ä¸ªå¡«å
段è½çåºæ¬å½ä»¤ï¼å®é
ä¸ï¼æ¯å®æå¡«å
段è½ç大å¤æ°å·¥ä½ï¼å 为å
¶ä¸ä¸äºä¸èæ¶çå·¥ä½å¯ä»¥å¨ä¸å±ç±ä¸ä¸ª TECO
ç¨åºæ¥å®æï¼ãä½ å¯ä»¥ç¼åä¸ä¸ª TECO
ç¨åºæ¥å®ææ´ä¸ªä»»å¡ï¼ä½æ¯å®å¤ªæ
¢äºï¼æ以æ们对å
¶é¨å使ç¨äºæºå¨è¯è¨ååºä¼åãå¨æ¤ï¼ææ··åææ¯ï¼ï¼ç¼è¾å¨çç»å¤§é¨åæ¯ç¨
Lisp
ç¼åçï¼ä½æ¯é£äºéè¦é常快éè¿è¡çé¨åæ¯ç¨åºå±è¯è¨åçã</p>
-<p>å æ¤ï¼å½æç¼å第äºçEmacsæ¶ï¼æéç¨äºåæ
·ç设计ãåºå±çè¯è¨ä¸åæ¯æºå¨è¯è¨ï¼èæ¯Cãå°±ç¼åè¿è¡å¨ç±»Unixç³»ç»ä¸çå¯ç§»æ¤ç¨åºæ¥è¯´ï¼Cæ¯ä¸ä¸ªä¼ç§çãé«æçè¯è¨ãè½ç¶æä¸ä¸ªLisp解éå¨ï¼ä½æ¯æç´æ¥ç¨Cå®ç°äºä¸äºç¹å®çç¼è¾å轗管çç¼è¾å¨çç¼åãæå
¥èµ·å§ææ¬ã读åæ件ãå·æ°å±å¹æ¾ç¤ºä»¥å管çç¼è¾çªå£ã</p>
+<p>å æ¤ï¼å½æç¼å第äºçEmacsæ¶ï¼æéç¨äºåæ
·ç设计ãåºå±çè¯è¨ä¸åæ¯æºå¨è¯è¨ï¼èæ¯Cãå°±ç¼åè¿è¡å¨ç±»Unixç³»ç»ä¸çå¯ç§»æ¤ç¨åºæ¥è¯´ï¼Cæ¯ä¸ä¸ªä¼ç§çãé«æçè¯è¨ãè½ç¶æä¸ä¸ªLisp解éå¨ï¼ä½æ¯æç´æ¥ç¨Cå®ç°äºä¸äºç¹å®çç¼è¾åè½——管çç¼è¾å¨çç¼åãæå
¥èµ·å§ææ¬ã读åæ件ãå·æ°å±å¹æ¾ç¤ºä»¥å管çç¼è¾çªå£ã</p>
<p>å½æ¶ï¼å®ä¸åæ¯ç¬¬ä¸ä¸ªç¨ C ç¼å并è¿è¡å¨ Unix ä¸ç Emacs
äºã第ä¸ä¸ªæ¯ç± James Gosling å®æçï¼å°±æ¯
GosMacsãä»æäºå¥æªãä¸å¼å§ï¼ä»çæ¥è¿æ¯åå°äºåå§ Emacs
çåä½åå享精ç¥çå½±åãæé¦å
å¨ MIT å人们åå¸äº
-Emacsãæ人æ³è¦æå®ç§»æ¤å° Twenex
系绗å®æååªè¿è¡å¨æä»¬å¨ MIT 使ç¨çä¸å
¼å®¹åæ¶ç³»ç»ä¸ã人们æå®ç§»æ¤å°äº Twenex
-ä¸ï¼è¿æå³çä¸çä¸å¯è½ææ°ç¾ä¸ªè®¾å¤å¯ä»¥å®è£
该
+Emacsãæ人æ³è¦æå®ç§»æ¤å° Twenex
系绗—å®æååªè¿è¡å¨æä»¬å¨ MIT 使ç¨çä¸å
¼å®¹åæ¶ç³»ç»ä¸ã人们æå®ç§»æ¤å°äº
+Twenex ä¸ï¼è¿æå³çä¸çä¸å¯è½ææ°ç¾ä¸ªè®¾å¤å¯ä»¥å®è£
该
Emacsãæ们å¼å§åå¸è¯¥çæ¬ï¼åè¡éµå¾ªçæ¯“ä½ å¿
é¡»ååææçæ¹è¿”è¿æ
·å¤§å®¶é½åçã没æ人ä¼å»æ强è°è¿ä¸ªè§åï¼ä½æ¯å°±ææç¥äººä»¬é½æ¯åä½çã</p>
-<p>Goslingä¸å¼å§ï¼çç¡®çèµ·æ¥æ¯ä»¥è¿æ
·çç²¾ç¥åä¸çãä»å¨ä¸ä¸ªä½¿ç¨æåé称æ¤ç¨åºä¸ºEmacsï¼å¸æ社åºè½å¤æ¹åä¹ï¼ä½¿ä¹é
å¾ä¸è¿ä¸ªååãè¿æ¯åä¸ç¤¾åºçæ£ç¡®æ¹å¼—请大家åä¸å¹¶ä½¿ç¨åºæ´å¥½ãä½æ¯å¨æ¤ä¹åï¼ä»ä¼¼ä¹æ¹åäºæ度ï¼å¹¶æç¨åºåç»äºä¸ä¸ªå
¬å¸ã</p>
+<p>Goslingä¸å¼å§ï¼çç¡®çèµ·æ¥æ¯ä»¥è¿æ
·çç²¾ç¥åä¸çãä»å¨ä¸ä¸ªä½¿ç¨æåé称æ¤ç¨åºä¸ºEmacsï¼å¸æ社åºè½å¤æ¹åä¹ï¼ä½¿ä¹é
å¾ä¸è¿ä¸ªååãè¿æ¯åä¸ç¤¾åºçæ£ç¡®æ¹å¼——请大家åä¸å¹¶ä½¿ç¨åºæ´å¥½ãä½æ¯å¨æ¤ä¹åï¼ä»ä¼¼ä¹æ¹åäºæ度ï¼å¹¶æç¨åºåç»äºä¸ä¸ªå
¬å¸ã</p>
<p>é£æ¶ï¼ææ£å¨ä¸ºGNUç³»ç»èå¿ç¢ï¼ä¸ä¸ªç±»ä¼¼Unixçèªç±è½¯ä»¶æä½ç³»ç»ï¼è®¸å¤äººé误å°ç§°ä¹ä¸º“Linux”ï¼ãé£æ¶å¹¶æ²¡æè·å¨Unixä¸çèªç±è½¯ä»¶ççEmacsç¼è¾å¨ãä¸è¿ï¼ææä¸ä¸ªåä¸äºGoslingçEmacså¼åçæåãGoslingéè¿é®ä»¶ç»äºä»åå¸èªå·±çæ¬ç许å¯ãä»å»ºè®®æ使ç¨ä»ççæ¬ãç¶åï¼æåç°GoslingçEmacs带çä¸æ¯ççLispãå®å¸¦çç¼ç¨è¯è¨æ¯‘mocklisp’ï¼å
¶è¯æ³çèµ·æ¥åæ¯Lispï¼ä½æ¯æ²¡æLispçæ°æ®ç»æãæ以å
¶ç¨åºä¸æ¯æ°æ®ï¼èä¸ä¹ç¼ºå¤±Lispçéè¦å
ç´ ãå
¶æ°æ®ç»ææ¯å符串ãæ°ååå
¶ä»ä¸äºä¸é¨ç»æã</p>
<p>æå¾åºæä¸è½ä½¿ç¨è¯¥ç¨åºå¹¶ä¸è¦å®å
¨æ¿æ¢è¯¥ç¨åºçç»è®ºï¼ç¬¬ä¸æ¥å°±æ¯ç¼åä¸ä¸ªçæ£çLisp解éå¨ãæéæ¥ç¨çæ£çLispæ°æ®ç»ææ¿æ¢äºè¯¥ç¼è¾å¨çæ¯ä¸ªé¨åï¼èä¸æ¯ä½¿ç¨å
¶ä¸é¨çæ°æ®ç»æï¼å¹¶ä½¿ç¼è¾å¨çå
é¨æ°æ®ç»æ对ç¨æ·çLispç¨åºå¼æ¾ï¼ä½¿ç¨æ·ç¨åºè½å¤å¤çç¼è¾å¨å
é¨æ°æ®ã</p>
-<p>æ¾ç¤ºå·æ°æ¯ä¸ªä¾å¤ãå¾é¿æ¶é´ä»¥æ¥ï¼æ¾ç¤ºå·æ°åæ¯ä¸ä¸ªå¦ç±»ä¸çãç¼è¾å¨ä¸æ¦è¿å
¥æ¾ç¤ºå·æ°çä¸çï¼äºæ
å°±åæ对åå¾æ°æ®æ¶éä¸å®å
¨çé常ç¹æ®çæ°æ®ç»æï¼å®ä»¬å¯¹ä¸æå¤çä¹ä¸å®å
¨ï¼èä¸ä½
å¨æ¤è¿ç¨ä¸æ
æ³è¿è¡ä»»ä½Lispç¨åºãæ们已ç»ä¿®æ¹äºè¿é¨å—ç°å¨ä½
å¨æ¾ç¤ºå·æ°æ¶ä¹å¯ä»¥è¿è¡Lisp代ç ãè¿æ¯ä¸ä»¶å¾ä¾¿å©çäºã</p>
+<p>æ¾ç¤ºå·æ°æ¯ä¸ªä¾å¤ãå¾é¿æ¶é´ä»¥æ¥ï¼æ¾ç¤ºå·æ°åæ¯ä¸ä¸ªå¦ç±»ä¸çãç¼è¾å¨ä¸æ¦è¿å
¥æ¾ç¤ºå·æ°çä¸çï¼äºæ
å°±åæ对åå¾æ°æ®æ¶éä¸å®å
¨çé常ç¹æ®çæ°æ®ç»æï¼å®ä»¬å¯¹ä¸æå¤çä¹ä¸å®å
¨ï¼èä¸ä½
å¨æ¤è¿ç¨ä¸æ
æ³è¿è¡ä»»ä½Lispç¨åºãæ们已ç»ä¿®æ¹äºè¿é¨å——ç°å¨ä½
å¨æ¾ç¤ºå·æ°æ¶ä¹å¯ä»¥è¿è¡Lisp代ç
ãè¿æ¯ä¸ä»¶å¾ä¾¿å©çäºã</p>
<p>è¿ä¸ªç¬¬äºçç Emacs
æ¯ç°ä»£æä¹ä¸ç‘èªç±è½¯ä»¶’——å®æ¯åäºè½¯ä»¶èªç±çæ¿æ²»è¿å¨çä¸é¨åã该è¿å¨çç²¾é«å°±æ¯æ¯ä¸ªäººé½åºè¯¥æèªç±åæ们å¨
@@ -89,8 +102,9 @@
æ令å¤çæ°åæ¶ï¼ç³»ç»ä¼ç«å³æ¥éãæ们å¶é
äºè¿ç§çµè并ä¸æä¸ä¸ªä¸é¨ç Lisp æä½ç³»ç»ã该系ç»å ä¹å®å
¨æ¯ç¨ Lisp ç¼åçï¼åªæä¸é¨åæ¯ç¨
microcode ç¼åçã人们对大è§æ¨¡é è¿ç§æºå¨å¾æå
´è¶£ï¼è¿æå³çä»ä»¬åºè¯¥å¼ä¸ªå
¬å¸ã</p>
-<p>对å¼ä»ä¹æ ·çå
¬å¸ï¼å¤§å®¶æ两ç§ä¸åçæ³æ³ãGreenblattæ³å¼ä¸ä¸ªä»ç§°ä¹ä¸º“é»å®¢”çå
¬å¸ãè¿æå³ç该å
¬å¸ä¼ç±é»å®¢è¿ä½å¹¶ä¸ä»¥æå©äºé»å®¢çæ¹å¼è¿ä½ãå¦ä¸ä¸ªç®çæ¯è¦ä¿æ人工æºè½å®éªå®¤çæå<a
-href="#foot-3">(3)</a>ãä¸å¹¸çæ¯ï¼Greenblatt没æä»»ä½åä¸ç»éªï¼æ以Lispçµèå¢éçå
¶ä»äººå¯¹Greenblattä¼ä¸ä¼æå表示æçãä»ä»¬è®¤ä¸ºä»æç»å¤é¨èµéçåæ³è¡ä¸éã</p>
+<p>对å¼ä»ä¹æ ·çå
¬å¸ï¼å¤§å®¶æ两ç§ä¸åçæ³æ³ãGreenblattæ³å¼ä¸ä¸ªä»ç§°ä¹ä¸º“é»å®¢”çå
¬å¸ãè¿æå³ç该å
¬å¸ä¼ç±é»å®¢è¿ä½å¹¶ä¸ä»¥æå©äºé»å®¢çæ¹å¼è¿ä½ãå¦ä¸ä¸ªç®çæ¯è¦ä¿æ人工æºè½å®éªå®¤çæå <a
+class="ftn"
+href="#foot-3">[3]</a>ãä¸å¹¸çæ¯ï¼Greenblatt没æä»»ä½åä¸ç»éªï¼æ以Lispçµèå¢éçå
¶ä»äººå¯¹Greenblattä¼ä¸ä¼æå表示æçãä»ä»¬è®¤ä¸ºä»æç»å¤é¨èµéçåæ³è¡ä¸éã</p>
<p>ä»ä¸ºä»ä¹è¦é¿å
å¤é¨æèµå¢ï¼å 为å¦æä¸ä¸ªå
¬å¸å¼å
¥äºå¤é¨æèµè
ï¼ä»ä»¬å°±ä¼ææ§å
¬å¸å¹¶ä¸ä¸ä¼è®©ä½
æä»»ä½éå¾·ä¸çç¹è±«ãæç»ï¼å¦æä½
ç¨æç¹è±«ï¼ä»ä»¬ä¹ä¼è¸¢å¼ä½ ã</p>
@@ -108,8 +122,8 @@
使ç¨ä»ä»¬çæ´æ¹ãä½æ¯åå没æ说 MIT ææå°è¿äºä»£ç æ¾å
¥ç±ä¸¤å®¶å
¬å¸ææç MIT Lisp
çµèç³»ç»ã没æ人é¢è§å°å®éªå®¤çé»å®¢å°ç»ä¼è¢«å½»åºæ¯çï¼ä½æ¯å®å°±æ¯è¢«æ¯çäºã</p>
-<p> äºæ¯ï¼Symbolics å¯å¨äºä¸ä¸ªè®¡å<a
-href="#foot-4">(4)</a>ãä»ä»¬å¯¹å®éªå®¤è¯´ï¼“æ们ä¼æç»è®©ä½
们使ç¨æ们çç³»ç»æ¹è¿ï¼ä½æ¯ä½ 们ä¸è½æè¿äºæ¹è¿è£
å° MIT ç
+<p> äºæ¯ï¼Symbolics å¯å¨äºä¸ä¸ªè®¡å <a
+href="#foot-4">[4]</a>ãä»ä»¬å¯¹å®éªå®¤è¯´ï¼“æ们ä¼æç»è®©ä½
们使ç¨æ们çç³»ç»æ¹è¿ï¼ä½æ¯ä½ 们ä¸è½æè¿äºæ¹è¿è£
å° MIT ç
Lisp çµèç³»ç»ä¸ãä¸è¿ï¼æ们ä¼è®©ä½ ä»¬ä½¿ç¨ Symbolics ç Lisp
çµèç³»ç»ï¼ä½ 们å¯ä»¥å¨è¿äºç³»ç»ä¸è¿è¡æ¹è¿çï¼ä½æ¯ä»
æ¤èå·²ã”</p>
<p>è¿å®é
ä¸æ¯è¦æ±æ们åªè½éæ©ä¸è¾¹ï¼è¦ä¹ä½¿ç¨ MIT
çç³»ç»çæ¬ï¼è¦ä¹ä½¿ç¨ Symbolics
@@ -118,34 +132,34 @@
LMI çåä¸å»ãå æ¤ï¼æ们ä¸è¢«å
许åä¿æä¸ç«ã</p>
<p>ç´å°æ¤æ¶ï¼æé½æ²¡æç«å¨å
¶ä¸ä»»ä½ä¸ä¸ªå
¬å¸çä¸è¾¹ï¼è½ç¶æçå°ç¤¾åºå软件åççä¸åæå°é常é¾åãä½æ¯ç°å¨ï¼Symbolics强迫æååºéæ©ãæ以ï¼ä¸ºäºä½¿Lisp
-Machineså
¬å¸è½å¤ç»§ç»<a
-href="#foot-5">(5)</a>—æå¼å§å¤å¶Symbolics对Lispçµèç³»ç»æä½çå
¨é¨æ¹è¿ãææè¿äºæ¹è¿ç¨èªå·±çæ³æ³åæ
·å®ç°åºæ¥ï¼å°±æ¯è¯´ï¼ä»£ç æ¯æèªå·±åçï¼ã</p>
+Machineså
¬å¸è½å¤ç»§ç» <a
+href="#foot-5">[5]</a>——æå¼å§å¤å¶Symbolics对Lispçµèç³»ç»æä½çå
¨é¨æ¹è¿ãææè¿äºæ¹è¿ç¨èªå·±çæ³æ³åæ
·å®ç°åºæ¥ï¼å°±æ¯è¯´ï¼ä»£ç æ¯æèªå·±åçï¼ã</p>
-<p>è¿äºä¸éµï¼<a
-href="#foot-6">(6)</a>ï¼æå¾åºç»è®ºï¼ä¸çä»ä»¬ç代ç
å¯è½æ´å¥½ãå½ä»ä»¬å®£å¸betaçæ¶ï¼éè¿çåå¸å£°æï¼æç¥éäºæä»ä¹åè½ï¼ç¶åèªå·±å®ç°å®ä»¬ãå½ä»ä»¬åè¡æ£å¼çæ¶ï¼æä¹å®ç°äºè¿äºåè½ã</p>
+<p>è¿äºä¸éµï¼ <a
+href="#foot-6">[6]</a>ï¼æå¾åºç»è®ºï¼ä¸çä»ä»¬ç代ç
å¯è½æ´å¥½ãå½ä»ä»¬å®£å¸betaçæ¶ï¼éè¿çåå¸å£°æï¼æç¥éäºæä»ä¹åè½ï¼ç¶åèªå·±å®ç°å®ä»¬ãå½ä»ä»¬åè¡æ£å¼çæ¶ï¼æä¹å®ç°äºè¿äºåè½ã</p>
<p>å¦æ¤è¿æ ·ï¼æ两年çæ¶é´ï¼æé»æ¢ä»ä»¬æLisp
-Machineså
¬å¸æ¶çï¼è¿ä¸¤ä¸ªå
¬å¸åæ¶åå¨ãä½æ¯ï¼æä¸æ³è¿æ
·å¹´å¤ä¸å¹´å°æ©ç½ä¸ä¸ªäººï¼ä»
ä»
åªæ¯é»æ
ä¸æ¡©ç½ªæ¶ãæè§å¾ä»ä»¬å·²ç»åå°äºå½»åºçæ©ç½ï¼å 为ä»ä»¬é·å
¥äºæ æ³æè±çç«äºæ¼©æ¶¡ä¹ä¸<a
-href="#foot-7">(7)</a>ãä¸æ¤åæ¶ï¼æ¯æ¶ååå¼å§å建ä¸ä¸ªæ°ç社åºæ¥ä»£æ¿é£ä¸ªè¢«ä»ä»¬ä»¥åå
¶ä»äººæ¯çç社åºäºã</p>
+Machineså
¬å¸æ¶çï¼è¿ä¸¤ä¸ªå
¬å¸åæ¶åå¨ãä½æ¯ï¼æä¸æ³è¿æ
·å¹´å¤ä¸å¹´å°æ©ç½ä¸ä¸ªäººï¼ä»
ä»
åªæ¯é»æ
ä¸æ¡©ç½ªæ¶ãæè§å¾ä»ä»¬å·²ç»åå°äºå½»åºçæ©ç½ï¼å 为ä»ä»¬é·å
¥äºæ æ³æè±çç«äºæ¼©æ¶¡ä¹ä¸ <a
+href="#foot-7">[7]</a>ãä¸æ¤åæ¶ï¼æ¯æ¶ååå¼å§å建ä¸ä¸ªæ°ç社åºæ¥ä»£æ¿é£ä¸ªè¢«ä»ä»¬ä»¥åå
¶ä»äººæ¯çç社åºäºã</p>
<p>70 年代ç Lisp 社åºä¸éäº MIT
人工æºè½å®éªå®¤ï¼å¹¶ä¸æ¯ææçé»å®¢é½å¨ MITãSymbolics
åèµ·çæäºæ¯çäº MIT
社åºï¼ä½æ¯åæ¶è¿æå
¶ä»äºä»¶å¨è¿è¡ãæ人æ¾å¼äºåä½ï¼è¿äºä¹æ¯çç社åºï¼ç¤¾åºæå©å¯¥å¯¥äºã</p>
-<p>ä¸æ¦æä¸åæ©ç½Symbolicsï¼æå°±ä¸å¾ä¸èèä¸ä¸æ¥åä»ä¹ãæå¿
é¡»åä¸ä¸ªèªç±çæä½ç³»ç»ï¼è¿å¾æ澗人们è½å¤ä¸èµ·å·¥ä½åå享çæ¹æ³å°±æ¯æä¸ä¸ªèªç±çæä½ç³»ç»ã</p>
+<p>ä¸æ¦æä¸åæ©ç½Symbolicsï¼æå°±ä¸å¾ä¸èèä¸ä¸æ¥åä»ä¹ãæå¿
é¡»åä¸ä¸ªèªç±çæä½ç³»ç»ï¼è¿å¾ææ¾——人们è½å¤ä¸èµ·å·¥ä½åå享çæ¹æ³å°±æ¯æä¸ä¸ªèªç±çæä½ç³»ç»ã</p>
-<p>ä¸å¼å§ï¼ææ³è¦åä¸ä¸ªåºäºLispçç³»ç»ï¼ä½æ¯æ认è¯å°é£å¨ææ¯ä¸å¹¶ä¸ä¸ä¸ªå¥½ä¸»æãè¦ååLispçµèé£æ
·çç³»ç»ï¼ä½ éè¦ä¸ç¨ç微代ç ãè¿ç§å¾®ä»£ç ä½¿ä½ è½å¤åå
¶ä»çµèä¸æ
·å¿«éå°æ§è¡ç¨åºï¼åæ¶è¿è½è·çäºç±»åæ£æ¥ã没æ微代ç
ï¼ä½ å°±åªç¸å½äºå
¶ä»æºå¨ä¸çLispç¼è¯å¨ãç¨åºå¯ä»¥æ´å¿«ï¼ä½æ¯å¹¶ä¸å®å
¨ãå¦æä½ å¨ä¸ä¸ªåæ¶ç³»ç»ä¸è¿è¡ä¸ä¸ªè¿æ
·çç¨åºè¿åå—ä¸ä¸ªç¨åºå´©æºå¹¶ä¸æ¯ç¾é¾ï¼ç¨æ·ç¨åºæ¶ä¸æ¶å°é½å¯è½ä¼å´©æºãä½æ¯è¿æ
·ç¼åæä½ç³»ç»å°±ä¸è¡ï¼æ以ææå¼äºå类似Lispçµèç³»ç»çæ³æ³ã</p>
+<p>ä¸å¼å§ï¼ææ³è¦åä¸ä¸ªåºäºLispçç³»ç»ï¼ä½æ¯æ认è¯å°é£å¨ææ¯ä¸å¹¶ä¸ä¸ä¸ªå¥½ä¸»æãè¦ååLispçµèé£æ
·çç³»ç»ï¼ä½ éè¦ä¸ç¨ç微代ç ãè¿ç§å¾®ä»£ç ä½¿ä½ è½å¤åå
¶ä»çµèä¸æ
·å¿«éå°æ§è¡ç¨åºï¼åæ¶è¿è½è·çäºç±»åæ£æ¥ã没æ微代ç
ï¼ä½ å°±åªç¸å½äºå
¶ä»æºå¨ä¸çLispç¼è¯å¨ãç¨åºå¯ä»¥æ´å¿«ï¼ä½æ¯å¹¶ä¸å®å
¨ãå¦æä½ å¨ä¸ä¸ªåæ¶ç³»ç»ä¸è¿è¡ä¸ä¸ªè¿æ
·çç¨åºè¿åå——ä¸ä¸ªç¨åºå´©æºå¹¶ä¸æ¯ç¾é¾ï¼ç¨æ·ç¨åºæ¶ä¸æ¶å°é½å¯è½ä¼å´©æºãä½æ¯è¿æ
·ç¼åæä½ç³»ç»å°±ä¸è¡ï¼æ以ææå¼äºå类似Lispçµèç³»ç»çæ³æ³ã</p>
<p>æå³å®åä¸ä¸ªç±»ä¼¼Unixçæä½ç³»ç»ï¼å¯è½ä¼å¸¦ä¸ä¸ªè½å¤è¿è¡ç¨æ·ç¨åºçLispç¯å¢ãå
æ ¸ä¸å¿
æ¯ç¨Lispç¼åçï¼ä½æ¯æ们åºå½æLispãæ以æ£æ¯è¿ä¸ªæä½ç³»ç»ãGNUæä½ç³»ç»çå¼åæå¼æç¼åäºGNU
Emacsãå¨ç¼åçè¿ç¨ä¸ï¼æçç®çæ¯åä¸ä¸ªå°½å¯è½æå°çLispç³»ç»ã该ç¨åºç大å°æ¯é常éè¦çèéã</p>
<p>å¨1985å¹´ï¼æäºäººçµèçå
åæ¯ä¸å¸¦èæå
åç1å
åèãä»ä»¬ä¹æ³è¦è¿è¡GNU Emacsãè¿æå³çæå¿
须使该ç¨åºå°½å¯è½å°å°ã</p>
-<p>举个ä¾åï¼å½æ¶ç循ç¯ç»æåªæ‘while’ï¼å®ç®åå°æè´ãä½
æ æ³ç´æ¥è·³åº‘while’循ç¯ï¼ä½
åªè½è¿è¡ä¸æ¬¡å¼å¸¸æè·ï¼catchï¼åä¸æ¬¡å¼å¸¸æåºï¼throwï¼ï¼æè
å¤ææ§å¶å¾ªç¯çåéãè¿ä¸ªä¾å说ææ为äºä½¿ç¨åºåå°ï¼ååºäºä»ä¹æ
·çåªåãæ们ä¹æ²¡æ‘caar’å‘cadr’ççæ令3尽å¯è½åå°ä¸å¿
è¦çä¸è¥¿”æ¯GNU
+<p>举个ä¾åï¼å½æ¶ç循ç¯ç»æåªæ<code>while</code>ï¼å®ç®åå°æè´ãä½
æ æ³ç´æ¥è·³åº<code>while</code>循ç¯ï¼ä½
åªè½è¿è¡ä¸æ¬¡å¼å¸¸æè·ï¼catchï¼åä¸æ¬¡å¼å¸¸æåºï¼throwï¼ï¼æè
å¤ææ§å¶å¾ªç¯çåéãè¿ä¸ªä¾å说ææ为äºä½¿ç¨åºåå°ï¼ååºäºä»ä¹æ
·çåªåãæ们ä¹æ²¡æ<code>caar</code>å<code>cadr</code>ççæ令3尽å¯è½åå°ä¸å¿
è¦çä¸è¥¿”æ¯GNU
Emacsçç²¾é«ï¼æ¯Emacs Lispçç²¾é«ï¼ä»ä¸å¼å§å°±æ¯è¿æ ·ã</p>
-<p>å½ç¶ï¼ç°å¨ççµè大äºï¼æ们ä¹ä¸å追æ±é£æ
·çæè´ãæ们å å
¥äº‘caar’å‘cadr’çæ令ï¼èä¸æ们æè¿ä¹ä¼æ·»å
å¦å¤ç循ç¯ç»æãç°å¨æ们æ¿ææ©å±å®ï¼ä½æ¯æ们ä¸æ³æå®æ©å±æcommon
-Lispé£æ ·ãææ¾å¨Lispçµèä¸å®ç°è¿Common
Lispï¼æ对ä¹å¹¶ä¸æ¯åå满æãå
¶ä¸æé常ä¸å欢çå°±æ¯å
³é®ååæ°<a
-href="#foot-8">(8)</a>ãå¨æçæ¥ï¼å®ä»¬ä¸ç®Lispyï¼è½ç¶æææ¶ä¹ç¨å
³é®åï¼ä½æ¯æææç¨ç次æ°æ§å¶å°æå°ã</p>
+<p>å½ç¶ï¼ç°å¨ççµè大äºï¼æ们ä¹ä¸å追æ±é£æ
·çæè´ãæ们å å
¥äº<code>caar</code>å<code>cadr</code>çæ令ï¼èä¸æ们æè¿ä¹ä¼æ·»å
å¦å¤ç循ç¯ç»æãç°å¨æ们æ¿ææ©å±å®ï¼ä½æ¯æ们ä¸æ³æå®æ©å±æcommon
+Lispé£æ ·ãææ¾å¨Lispçµèä¸å®ç°è¿Common
Lispï¼æ对ä¹å¹¶ä¸æ¯åå满æãå
¶ä¸æé常ä¸å欢çå°±æ¯å
³é®ååæ° <a
+href="#foot-8">[8]</a>ãå¨æçæ¥ï¼å®ä»¬ä¸ç®Lispyï¼è½ç¶æææ¶ä¹ç¨å
³é®åï¼ä½æ¯æææç¨ç次æ°æ§å¶å°æå°ã</p>
<p>è¿å¹¶ä¸æ¯GNUå·¥ç¨æ¶åLispçç»æãåæ¥å¨1995å¹´å·¦å³ï¼æ们计åå¯å¨ä¸ä¸ªå¾å½¢åæ¡é¢é¡¹ç®ãæ们å¾æ¸
æ¥è¯¥æ¡é¢ç¨åºç主è¦ç¼ç¨è¯è¨åºè¯¥è½å¤ä¾¿å©å°æ©å±è¯¥æ¡é¢ç¨åºï¼å°±åæ们çç¼è¾å¨ä¸æ
·ãé®é¢å¨äºè¿åºè¯¥æ¯ä¸ä¸ªä»ä¹è¯è¨ã</p>
@@ -161,7 +175,7 @@
Lispï¼é£ä¹ç¿»è¯å°±ä¸æ¯é¾äºãæ们çæ³æ³æ¯ï¼å¦ææ¯ä¸ªæ©å±åºç¨é½æ¯æ
Schemeï¼é£ä¹ä½ å¯ä»¥ç¨ Scheme å®ç° TCL æ Python æ
Perlï¼ç¨æ¥æåºç¨ç¿»è¯æ Schemeãä¹åï¼ä½ å°±å¯ä»¥æå®å
è½½å°æ¯ä¸ªåºç¨ï¼ç¶åå°±å¯ä»¥ç¨èªå·±æåç±çè¯è¨æ¥å®å¶åºç¨äºï¼å
¶ä»å®å¶ä¹ç±»ä¼¼ã</p>
-<p>å¦ææ©å±è¯è¨å¾å¼±ï¼ç¨æ·å°±ä¸å¾ä¸ä½¿ç¨ä½
æä¾çå¯ä¸è¯è¨ãè¿å°±æå³çï¼å欢ç¹å®è¯è¨ç人们å°ä¸å¾ä¸åå¼åè
éæ©çè¯è¨ç«äº—ä»ä»¬ä¼è¯´“åºç¨å¼åè
ï¼è¯·ææçè¯è¨æ·»å å°ä½ çåºç¨ä¸ï¼èä¸æ¯æ·»å
å«äººçã”è¿æ ·ï¼ç¨æ·å°±æ
¹æ¬æ²¡æéæ©çä½å°—ä»ä»¬åªè½æ¥ååºç¨å¸¦æ¥çè¯è¨ï¼å¹¶åå¶äº[该è¯è¨]ãä½æ¯å¦æä½
æä¸ä¸ªå¼ºå¤§çè¯è¨ï¼å®è½å¤å®ç°å
¶ä»è¯è¨ï¼é£ä¹ä½
å°±ç»äºç¨æ·èªç±éæ©è¯è¨çæå©ï¼æ们就ä¸åæè¯è¨éæ©çæäºäºãè¿æ£æ¯æ们æå¸æç‘Guile’ï¼æ们çscheme解éå¨ï¼è½å¤åå°è¿ä¸åãå»å¹´å¤å¤©ï¼æ们æ人å®æäºä»Pythonå°Schemeçç¿»è¯å¨ãæä¸å¤ªç¡®å®è¿ä¸ªæ¯å¦å·²ç»å
¨é¨å®æï¼ä¸è¿å¦ææ人对è¿ä¸ªé¡¹ç®æå
´è¶£ï¼è¯·èç³»æ们ãè¿å°±æ¯æ们æªæ¥ç计åã</p>
+<p>å¦ææ©å±è¯è¨å¾å¼±ï¼ç¨æ·å°±ä¸å¾ä¸ä½¿ç¨ä½
æä¾çå¯ä¸è¯è¨ãè¿å°±æå³çï¼å欢ç¹å®è¯è¨ç人们å°ä¸å¾ä¸åå¼åè
éæ©çè¯è¨ç«äº—ä»ä»¬ä¼è¯´“åºç¨å¼åè
ï¼è¯·ææçè¯è¨æ·»å å°ä½ çåºç¨ä¸ï¼èä¸æ¯æ·»å
å«äººçã”è¿æ ·ï¼ç¨æ·å°±æ
¹æ¬æ²¡æéæ©çä½å°——ä»ä»¬åªè½æ¥ååºç¨å¸¦æ¥çè¯è¨ï¼å¹¶åå¶äº[该è¯è¨]ãä½æ¯å¦æä½
æä¸ä¸ªå¼ºå¤§çè¯è¨ï¼å®è½å¤å®ç°å
¶ä»è¯è¨ï¼é£ä¹ä½
å°±ç»äºç¨æ·èªç±éæ©è¯è¨çæå©ï¼æ们就ä¸åæè¯è¨éæ©çæäºäºãè¿æ£æ¯æ们æå¸æç‘Guile’ï¼æ们çscheme解éå¨ï¼è½å¤åå°è¿ä¸åãå»å¹´å¤å¤©ï¼æ们æ人å®æäºä»Pythonå°Schemeçç¿»è¯å¨ãæä¸å¤ªç¡®å®è¿ä¸ªæ¯å¦å·²ç»å
¨é¨å®æï¼ä¸è¿å¦ææ人对è¿ä¸ªé¡¹ç®æå
´è¶£ï¼è¯·èç³»æ们ãè¿å°±æ¯æ们æªæ¥ç计åã</p>
<p>æä¸ç´æ²¡ææèªç±è½¯ä»¶ï¼ä¸è¿ç°å¨è®©æç®å说ä¸ä¸å®çæä¹ãèªç±è½¯ä»¶æçä¸æ¯ä»·æ
¼ï¼å®çææä¸æ¯ä½ å¯ä»¥å
è´¹å¾å°ç软件ãï¼å®å¯ä»¥æ¯ä½
ä»è´¹å¾å°ç软件ï¼ä¹å¯ä»¥æ¯ä½ å
è´¹è·å¾çæ·è´ãï¼å®çæææ¯ä½ä¸ºç¨æ·ï¼ä½ æä¸äºèªç±ãå
¶ä¸çå
³é®æ¯ä½ æèªç±è¿è¡è¯¥è½¯ä»¶ãä½ æèªç±ç 究å
¶æä½æ为ãä½ æèªç±æç
§èªå·±çéæ±ä¿®æ¹è¯¥è½¯ä»¶ãä½
æèªç±åå
¶ä»äººåå¸è¯¥è½¯ä»¶ä»¥ååå¸ä¿®æ¹åç软件ãè¿å°±æ¯èªç±è½¯ä»¶çå®ä¹ãå¦æä½
使ç¨çæ¯éèªç±è½¯ä»¶ï¼ä½ 就失å»äºè¿äºå
³é®çèªç±ï¼æ以请ä¸è¦ä½¿ç¨éèªç±è½¯ä»¶ã</p>
@@ -170,9 +184,11 @@
<p>åä½äºå©å
³ä¹èªç±ã人们ä¹
æ¯äºè®¤ä¸ºèªç±å社ä¼åä½æ¯å¯¹ç«çãä½æ¯ï¼æ¤æ¶æ们å¨åä¸æ¡æå£å
ã使ç¨èªç±è½¯ä»¶ï¼ä½ å°±æèªç±åå
¶ä»äººåä½ï¼å¹¶ä¸ä¹æèªç±å¸®å©ä½ èªå·±ã使ç¨éèªç±è½¯ä»¶ï¼ä½
就被æ§å¶ï¼äººä»¬è¢«ååãä½ æ æåå
¶ä»äººå享ï¼ä½
没æèªç±å»åä½äºå©æ帮å©ç¤¾ä¼ï¼æ£å¦ä½ 没æèªç±æ¥å¸®å©ä½
èªå·±ã使ç¨éèªç±è½¯ä»¶çç¨æ·å°±æ¯è¿æ ·å¤ç«åæ å©ã</p>
<p>æ们已ç»å¼åäºèå´åºå¤§çèªç±è½¯ä»¶ãæ们å®æäºäººä»¬æ¾ç»è¯´æ°¸è¿å®ä¸æçäºï¼æ们æ两个èªç±è½¯ä»¶æä½ç³»ç»ãæ们æå¾å¤åºç¨ï¼ä½æ们æ¾ç¶è¿ææ´å¤çè¦åãæ以ï¼æ们éè¦ä½
们ç帮å©ãæ请æ±ä½ 们æ为GNUå·¥ç¨çå¿æ¿è
ï¼å¸®å©æ们å¼åè½æ§è¡æ´å¤ä»»å¡çèªç±è½¯ä»¶ã请åç<a
-href="/help/">http://www.gnu.org/help</a>æ¥äºè§£æä¹å¸®å©æ们ãå¦æä½
æ³è®¢è´ä¸äºä¸è¥¿ï¼æ们ç主页ä¸æä¸ä¸ªé¾æ¥ãå¦æä½
æ³äºè§£æ们çå²å¦ï¼è¯·é
读/philosophyãå¦æä½
å¨æ¾å¯ç¨çèªç±è½¯ä»¶ï¼è¯·å°/directoryï¼ç°å¨å¤§çº¦æ1900个软件å
ï¼è¿åªæ¯ææèªç±è½¯ä»¶çä¸é¨åï¼ã请ç¼åæ´å¤çèªç±è½¯ä»¶å¹¶è´¡ç®ç»æ们ãæçæé3èªç±è½¯ä»¶åèªç±ç¤¾ä¼”ï¼æ£å¨åå®ï¼ä½
å¯ä»¥å¨<a
-href="http://www.gnu.org/">www.gnu.org</a>è´ä¹°ãç¥ä½ 们å¼åæå¿«ï¼</p>
+href="/help/help.html">gnu.org/help</a>æ¥äºè§£æä¹å¸®å©æ们ãå¦æä½
æ³è®¢è´ä¸äºä¸è¥¿ï¼æ们ç主页ä¸æä¸ä¸ªé¾æ¥ãå¦æä½
æ³äºè§£æ们çå²å¦ï¼è¯·é
读/philosophyãå¦æä½
å¨æ¾å¯ç¨çèªç±è½¯ä»¶ï¼è¯·å°/directoryï¼ç°å¨å¤§çº¦æ1900个软件å
ï¼è¿åªæ¯ææèªç±è½¯ä»¶çä¸é¨åï¼ã请ç¼åæ´å¤çèªç±è½¯ä»¶å¹¶è´¡ç®ç»æ们ãæçæé3èªç±è½¯ä»¶åèªç±ç¤¾ä¼”ï¼æ£å¨åå®ï¼ä½
å¯ä»¥å¨www.gnu.org <a
+href="#foot-9">[9]</a>è´ä¹°ãç¥ä½ 们å¼åæå¿«ï¼</p>
+<div class="column-limit"></div>
+<h3 class="footnote">è注</h3>
<ol>
<li id="foot-1">Guy
Steele设计äºEmacsæåç对称å½ä»¤éåï¼ç¶åæ们å¼å§æé
Emacsï¼å¨TECOçåºç¡ä¸ï¼ï¼ä½æ¯å¨ä¸æ®µé¿æçèåå¼åä¹åï¼Steeleæ¸æ¸ç¦»å¼äºï¼æ以æç¬èªå®æäºEmacsãå
¶ä»äººï¼ç¹å«æ¯Eugene
@@ -183,7 +199,7 @@
<li
id="foot-3">Greenblattç计åï¼å°±æçç解ï¼æ¯è¯·å®éªå®¤ç人åå
¼èï¼è¿æ
·ä»ä»¬è¿è½å¤ç»§ç»å¨äººå·¥æºè½å®éªå®¤çæ¬èå·¥ä½ãSymbolicséåçæ¯å
¨èéä½£ï¼æ以å®éªå®¤ç人åå°±ä¸è½å¨MITå·¥ä½äºã</li>
-<li
id="foot-4">该计åçèæ¯ï¼æå¨æ¼è®²é没ææ说ï¼æ¯å¨å¼å§é¶æ®µï¼äººå·¥æºè½å®éªå®¤çé»å®¢ä»¬ï¼ä¸ç®¡æ¯å¨Symbolicsï¼è¿æ¯å¨LMIï¼é½ç»§ç»æä»ä»¬çæ¹è¿è´¡ç®ç»MITçLispçµè系绗尽管åå并没æè¦æ±è¿æ
·åãSymbolicsç计åå´æ¯åæ¹é¢å²è£åä½ã</li>
+<li
id="foot-4">该计åçèæ¯ï¼æå¨æ¼è®²é没ææ说ï¼æ¯å¨å¼å§é¶æ®µï¼äººå·¥æºè½å®éªå®¤çé»å®¢ä»¬ï¼ä¸ç®¡æ¯å¨Symbolicsï¼è¿æ¯å¨LMIï¼é½ç»§ç»æä»ä»¬çæ¹è¿è´¡ç®ç»MITçLispçµè系绗—尽管åå并没æè¦æ±è¿æ
·åãSymbolicsç计åå´æ¯åæ¹é¢å²è£åä½ã</li>
<li id="foot-5">è¿å¹¶ä¸æ¯è¯´æç¹å«å
³æ³¨LMIçå½è¿ï¼æåªæ¯ä¸æ³è®©Symbolicséè¿æ»å»äººå·¥æºè½å®éªå®¤è·çã</li>
@@ -194,7 +210,12 @@
<li id="foot-7">Symbolicsæ¾ç»åMITæè®®ï¼æçå·¥ä½é»æ
äºä»ä»¬ç计åè使Symbolicsæ失ä¸ç¾ä¸ç¾å
ã</li>
<li id="foot-8">æ并ä¸ä»æé常å¤æåéé级çå½æ°ä½¿ç¨å
³é®ååæ°ãæ讨åçæ¯è¿è¯¸å¦“member”è¿æ
·çç®åå½æ°ä¹è¦ä½¿ç¨å
³é®ååæ°ã</li>
+
+<li id="foot-9">2021 å¹´ï¼æ¬ä¹¦å¯ä»¥å¨ <a
+href="https://shop.fsf.org/books-docs/free-software-free-society-selected-essays-richard-m-stallman-3rd-edition">GNU
+åºç社</a> è´ä¹°ã</li>
</ol>
+</div>
<div class="translators-notes">
@@ -207,7 +228,7 @@
<!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.zh-cn.html" -->
-<div id="footer">
+<div id="footer" role="contentinfo">
<div class="unprintable">
<p>请å°æå
³èªç±è½¯ä»¶åºéä¼ï¼FSFï¼&GNUçä¸è¬æ§é®é¢åéå°<a
@@ -226,11 +247,13 @@
<web-translators@gnu.org></a>.</p>
- <p>For information on coordinating and submitting translations of
+ <p>For information on coordinating and contributing translations of
our web pages, see <a
href="/server/standards/README.translations.html">Translations
README</a>. -->
-è¥æ¨æ³ç¿»è¯æ¬æï¼è¯·åç<a
href="/server/standards/README.translations.html">ç¿»è¯é¡»ç¥</a>ã</p>
+æ们尽æ大åªåæ¥æä¾ç²¾ååé«è´¨éçç¿»è¯ï¼ä½é¾å
ä¼åå¨é误åä¸è¶³ãå¦ææ¨å¨è¿æ¹é¢æè¯è®ºæä¸è¬æ§ç建议ï¼è¯·åéè³
<a
+href="mailto:web-translators@gnu.org"><web-translators@gnu.org></a>ã</p><p>å
³äºè¿è¡åè°ä¸æ交翻è¯çæ´å¤ä¿¡æ¯åè§
+<a href="/server/standards/README.translations.html">ãè¯è
æåã</a>ã</p>
</div>
<!-- Regarding copyright, in general, standalone pages (as opposed to
@@ -249,7 +272,7 @@
There is more detail about copyright years in the GNU Maintainers
Information document, www.gnu.org/prep/maintain. -->
-<p>Copyright © 2003, 2007, 2013, 2014, 2020 Free Software Foundation,
Inc.</p>
+<p>Copyright © 2003, 2007, 2013, 2021 Free Software Foundation, Inc.</p>
<p>æ¬é¡µé¢ä½¿ç¨ <a rel="license"
href="http://creativecommons.org/licenses/by-nd/4.0/">Creative Commons
@@ -262,16 +285,17 @@
<b>å®¡æ ¡</b>ï¼<a href="mailto:hagb_green@qq.com"><Hagb
ï¼éä¿ä½ï¼></a>ï¼2018ã<br></br>
<b>ç¿»è¯å¢é</b>ï¼<a rel="team"
-href="https://savannah.gnu.org/projects/www-zh-cn/"><CTT></a>ï¼2018ï¼2020ã</div>
+href="https://savannah.gnu.org/projects/www-zh-cn/"><CTT></a>ï¼2018ï¼2020ï¼2021ã</div>
<p class="unprintable"><!-- timestamp start -->
æåæ´æ°ï¼
-$Date: 2020/10/02 08:29:05 $
+$Date: 2021/11/04 03:30:15 $
<!-- timestamp end -->
</p>
</div>
</div>
+<!-- for class="inner", starts in the banner include -->
</body>
</html>
Index: po/rms-lisp.zh-cn-en.html
===================================================================
RCS file: /web/www/www/gnu/po/rms-lisp.zh-cn-en.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- po/rms-lisp.zh-cn-en.html 2 Oct 2020 08:29:05 -0000 1.4
+++ po/rms-lisp.zh-cn-en.html 4 Nov 2021 03:30:16 -0000 1.5
@@ -1,13 +1,26 @@
<!--#include virtual="/server/header.html" -->
-<!-- Parent-Version: 1.77 -->
+<!-- Parent-Version: 1.96 -->
+<!-- This page is derived from /server/standards/boilerplate.html -->
+<!--#set var="TAGS" value="gnu-history" -->
+<!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
<title>My Lisp Experiences and the Development of GNU Emacs
- GNU Project - Free Software Foundation</title>
+<style type="text/css" media="print,screen"><!--
+a[href*='#foot-'] { font-size: .94em; }
+--></style>
<!--#include virtual="/gnu/po/rms-lisp.translist" -->
<!--#include virtual="/server/banner.html" -->
+<!--#include virtual="/gnu/gnu-breadcrumb.html" -->
+<!--GNUN: OUT-OF-DATE NOTICE-->
+<!--#include virtual="/server/top-addendum.html" -->
+<div class="article reduced-width">
<h2>My Lisp Experiences and the Development of GNU Emacs</h2>
-<blockquote><p>(Transcript of Richard Stallman's Speech, 28 Oct 2002, at the
-International Lisp Conference).</p></blockquote>
+<div class="infobox">
+<p>Transcript of Richard Stallman's speech at the
+International Lisp Conference, 28 Oct 2002.</p>
+</div>
+<hr class="thin" />
<p>Since none of my usual speeches have anything to do with Lisp, none
of them were appropriate for today. So I'm going to have to wing it.
@@ -19,8 +32,8 @@
could be a computer language like that. The first time I had a chance
to do anything with Lisp was when I was a freshman at Harvard and I
wrote a Lisp interpreter for the <abbr title="Programmed Data
-Processor">PDP</abbr>-11. It was a very small machine
-— it had something like 8k of memory — and I managed to write the
+Processor">PDP</abbr>-11. It was a very small machine—it
+had something like 8k of memory—and I managed to write the
interpreter in a thousand instructions. This gave me some room for a
little bit of data. That was before I got to see what real software
was like, that did real system jobs.</p>
@@ -29,7 +42,7 @@
once I started working at <abbr title="Massachusetts Institute of
Technology">MIT</abbr>. I got hired at the Artificial Intelligence Lab
not by JonL, but by Russ Noftsker, which was most ironic considering
-what was to come — he must have really regretted that day.</p>
+what was to come—he must have really regretted that day.</p>
<p>During the 1970s, before my life became politicized by horrible
events, I was just going along making one extension after another for
@@ -57,25 +70,25 @@
what it was.</p>
<p>The original Emacs did not have Lisp in it. The lower level
-language, the non-interpreted language — was PDP-10
+language, the non-interpreted language—was PDP-10
Assembler. The interpreter we wrote in that actually wasn't written
for Emacs, it was written for <abbr title="Text Editor and
COrrector">TECO</abbr>. It was our text editor, and was an
extremely ugly programming language, as ugly as could possibly be. The
reason was that it wasn't designed to be a programming language, it
was designed to be an editor and command language. There were commands
-like ‘5l’, meaning ‘move five lines’, or
-‘i’ and then a string and then an ESC to insert that
+like <code>5l</code>, meaning <code>move five lines</code>, or
+<code>i</code> and then a string and then an ESC to insert that
string. You would type a string that was a series of commands, which
was called a command string. You would end it with ESC ESC, and it
would get executed.</p>
<p>Well, people wanted to extend this language with programming
facilities, so they added some. For instance, one of the first was a
-looping construct, which was < >. You would put those around
+looping construct, which was <code>< ></code>. You would put those
around
things and it would loop. There were other cryptic commands that could
-be used to conditionally exit the loop. To make Emacs, we
-<a href="#foot-1">(1)</a> added facilities to have subroutines with
+be used to conditionally exit the loop. To make Emacs, we <a
+href="#foot-1">[1]</a> added facilities to have subroutines with
names. Before that, it was sort of like Basic, and the subroutines
could only have single letters as their names. That was hard to
program big programs with, so we added code so they could have longer
@@ -84,7 +97,7 @@
from TECO.</p>
<p>We started putting in rather sophisticated facilities, all with the
-ugliest syntax you could ever think of, and it worked — people were
+ugliest syntax you could ever think of, and it worked—people were
able to write large programs in it anyway. The obvious lesson was that
a language like TECO, which wasn't designed to be a
programming language, was the wrong way to go. The language that you
@@ -94,10 +107,10 @@
for that purpose was Lisp.</p>
<p>It was Bernie Greenberg, who discovered that it
-was <a href="#foot-2">(2)</a>. He wrote a version of Emacs in Multics
+was <a href="#foot-2">[2]</a>. He wrote a version of Emacs in Multics
MacLisp, and he wrote his commands in MacLisp in a straightforward
fashion. The editor itself was written entirely in Lisp. Multics Emacs
-proved to be a great success — programming new editing commands
+proved to be a great success—programming new editing commands
was so convenient that even the secretaries in his office started
learning how to use it. They used a manual someone had written which
showed how to extend Emacs, but didn't say it was a programming. So
@@ -105,22 +118,22 @@
scared off. They read the manual, discovered they could do useful
things and they learned to program.</p>
-<p>So Bernie saw that an application — a program that does something
-useful for you — which has Lisp inside it and which you could extend
+<p>So Bernie saw that an application—a program that does something
+useful for you—which has Lisp inside it and which you could extend
by rewriting the Lisp programs, is actually a very good way for people
to learn programming. It gives them a chance to write small programs
that are useful for them, which in most arenas you can't possibly
-do. They can get encouragement for their own practical use — at the
-stage where it's the hardest — where they don't believe they can
+do. They can get encouragement for their own practical use—at the
+stage where it's the hardest—where they don't believe they can
program, until they get to the point where they are programmers.</p>
<p>At that point, people began to wonder how they could get something
like this on a platform where they didn't have full service Lisp
implementation. Multics MacLisp had a compiler as well as an
-interpreter — it was a full-fledged Lisp system — but people wanted
+interpreter—it was a full-fledged Lisp system—but people wanted
to implement something like that on other systems where they had not
already written a Lisp compiler. Well, if you didn't have the Lisp
-compiler you couldn't write the whole editor in Lisp — it would be
+compiler you couldn't write the whole editor in Lisp—it would be
too slow, especially redisplay, if it had to run interpreted Lisp. So
we developed a hybrid technique. The idea was to write a Lisp
interpreter and the lower level parts of the editor together, so that
@@ -145,7 +158,7 @@
machine language anymore, it was C. C was a good, efficient language
for portable programs to run in a Unix-like operating system. There
was a Lisp interpreter, but I implemented facilities for special
-purpose editing jobs directly in C — manipulating editor buffers,
+purpose editing jobs directly in C—manipulating editor buffers,
inserting leading text, reading and writing files, redisplaying the
buffer on the screen, managing editor windows.</p>
@@ -154,7 +167,7 @@
GosMacs. A strange thing happened with him. In the beginning, he
seemed to be influenced by the same spirit of sharing and cooperation
of the original Emacs. I first released the original Emacs to people
-at MIT. Someone wanted to port it to run on Twenex — it
+at MIT. Someone wanted to port it to run on Twenex—it
originally only ran on the Incompatible Timesharing System we used
at MIT. They ported it to Twenex, which meant that there
were a few hundred installations around the world that could
@@ -166,7 +179,7 @@
<p>Gosling did, at first, seem to participate in this spirit. He wrote
in a manual that he called the program Emacs hoping that others in the
community would improve it until it was worthy of that name. That's
-the right approach to take towards a community — to ask them to join
+the right approach to take towards a community—to ask them to join
in and make the program better. But after that he seemed to change the
spirit, and sold it to a company.</p>
@@ -178,7 +191,7 @@
to distribute his own version. He proposed to me that I use that
version. Then I discovered that Gosling's Emacs did not have a real
Lisp. It had a programming language that was known as
-‘mocklisp’, which looks syntactically like Lisp, but didn't
+“mocklisp,” which looks syntactically like Lisp, but didn't
have the data structures of Lisp. So programs were not data, and vital
elements of Lisp were missing. Its data structures were strings,
numbers and a few other specialized things.</p>
@@ -195,17 +208,17 @@
redisplay and things would go on with very special data structures
that were not safe for garbage collection, not safe for interruption,
and you couldn't run any Lisp programs during that. We've changed that
-since — it's now possible to run Lisp code during redisplay. It's
+since—it's now possible to run Lisp code during redisplay. It's
quite a convenient thing.</p>
-<p>This second Emacs program was ‘free software’ in the
-modern sense of the term — it was part of an explicit political
+<p>This second Emacs program was “free software” in the
+modern sense of the term—it was part of an explicit political
campaign to make software free. The essence of this campaign was that
everybody should be free to do the things we did in the old days
at MIT, working together on software and working with
whomever wanted to work with us. That is the basis for the free
-software movement — the experience I had, the life that I've lived at
-the MIT AI lab — to be working on human knowledge, and
+software movement—the experience I had, the life that I've lived at
+the MIT AI lab—to be working on human knowledge, and
not be standing in the way of anybody's further using and further
disseminating human knowledge.</p>
@@ -219,8 +232,8 @@
crashed at some point.</p>
<p>The Lisp machine was able to execute instructions about as fast as
-those other machines, but each instruction — a <code>car</code>
instruction would
-do data typechecking — so when you tried to get the <code>car</code> of
a number
+those other machines, but each instruction—a <code>car</code>
instruction would
+do data typechecking—so when you tried to get the <code>car</code> of a
number
in a compiled program, it would give you an immediate error. We built
the machine and had a Lisp operating system for it. It was written
almost entirely in Lisp, the only exceptions being parts written in
@@ -231,7 +244,7 @@
like. Greenblatt wanted to start what he called a
“hacker” company. This meant it would be a company run by
hackers and would operate in a way conducive to hackers. Another goal
-was to maintain the AI Lab culture <a href="#foot-3">(3)</a>.
+was to maintain the AI Lab culture <a class="ftn" href="#foot-3">[3]</a>.
Unfortunately, Greenblatt didn't have any business experience, so
other people in the Lisp machine group said they doubted whether he
could succeed. They thought that his plan to avoid outside investment
@@ -284,7 +297,7 @@
systems that both companies had licensed. Nobody had envisioned that
the AI lab's hacker group would be wiped out, but it was.</p>
-<p> So Symbolics came up with a plan <a href="#foot-4">(4)</a>. They
+<p> So Symbolics came up with a plan <a href="#foot-4">[4]</a>. They
said to the lab, “We will continue making our changes to the
system available for you to use, but you can't put it into
the MIT Lisp machine system. Instead, we'll give you
@@ -305,12 +318,12 @@
although it made me miserable to see what had happened to our
community and the software. But now, Symbolics had forced the issue.
So, in an effort to help keep Lisp Machines
-Inc. going <a href="#foot-5">(5)</a> — I began duplicating all
+Inc. going <a href="#foot-5">[5]</a>—I began duplicating all
of the improvements Symbolics had made to the Lisp machine system. I
wrote the equivalent improvements again myself (i.e., the code was my
own).</p>
-<p>After a while <a href="#foot-6">(6)</a>, I came to the conclusion
+<p>After a while <a href="#foot-6">[6]</a>, I came to the conclusion
that it would be best if I didn't even look at their code. When they
made a beta announcement that gave the release notes, I would see what
the features were and then implement them. By the time they had a real
@@ -321,7 +334,7 @@
want to spend years and years punishing someone, just thwarting an
evil deed. I figured they had been punished pretty thoroughly because
they were stuck with competition that was not leaving or going to
-disappear <a href="#foot-7">(7)</a>. Meanwhile, it was time to start
+disappear <a href="#foot-7">[7]</a>. Meanwhile, it was time to start
building a new community to replace the one that their actions and
others had wiped out.</p>
@@ -333,7 +346,7 @@
community and there wasn't much left.</p>
<p>Once I stopped punishing Symbolics, I had to figure out what to do
-next. I had to make a free operating system, that was clear — the
+next. I had to make a free operating system, that was clear—the
only way that people could work together and share was with a free
operating system.</p>
@@ -344,7 +357,7 @@
their programs and still get the benefit of typechecking. Without
that, you would be reduced to something like the Lisp compilers for
other machines. The programs would be faster, but unstable. Now that's
-okay if you're running one program on a timesharing system — if one
+okay if you're running one program on a timesharing system—if one
program crashes, that's not a disaster, that's something your program
occasionally does. But that didn't make it good for writing the
operating system in, so I rejected the idea of making a system like
@@ -363,21 +376,21 @@
Emacs. This meant I had to keep the program as small as possible.</p>
<p>For instance, at the time the only looping construct was
-‘while’, which was extremely simple. There was no way to
-break out of the ‘while’ statement, you just had to do a
+<code>while</code>, which was extremely simple. There was no way to
+break out of the <code>while</code> statement, you just had to do a
catch and a throw, or test a variable that ran the loop. That shows
how far I was pushing to keep things small. We didn't have
-‘caar’ and ‘cadr’ and so on; “squeeze
+<code>caar</code> and <code>cadr</code> and so on; “squeeze
out everything possible” was the spirit of GNU Emacs, the spirit
of Emacs Lisp, from the beginning.</p>
<p>Obviously, machines are bigger now, and we don't do it that way
-any more. We put in ‘caar’ and ‘cadr’ and so
+any more. We put in <code>caar</code> and <code>cadr</code> and so
on, and we might put in another looping construct one of these
days. We're willing to extend it some now, but we don't want to extend
it to the level of common Lisp. I implemented Common Lisp once on the
Lisp machine, and I'm not all that happy with it. One thing I don't
-like terribly much is keyword arguments <a href="#foot-8">(8)</a>.
+like terribly much is keyword arguments <a href="#foot-8">[8]</a>.
They don't seem quite Lispy
to me; I'll do it sometimes but I minimize the times when I do
that.</p>
@@ -420,14 +433,14 @@
<p>As long as the extensibility languages are weak, the users have to
use only the language you provided them. Which means that people who
love any given language have to compete for the choice of the
-developers of applications — saying “Please, application
+developers of applications—saying “Please, application
developer, put my language into your application, not his
-language.” Then the users get no choices at all — whichever
+language.” Then the users get no choices at all—whichever
application they're using comes with one language and they're stuck
with [that language]. But when you have a powerful language that can
implement others by translating into it, then you give the user a
choice of language and we don't have to have a language war
-anymore. That's what we're hoping ‘Guile’, our scheme
+anymore. That's what we're hoping Guile, our scheme
interpreter, will do. We had a person working last summer finishing up
a translator from Python to Scheme. I don't know if it's entirely
finished yet, but for anyone interested in this project, please get in
@@ -441,13 +454,13 @@
program, free to study what it does, free to change it to suit your
needs, free to redistribute the copies of others and free to publish
improved, extended versions. This is what free software means. If you
-are using a non-free program, you have lost crucial freedom, so don't
+are using a nonfree program, you have lost crucial freedom, so don't
ever do that.</p>
<p>The purpose of the GNU project is to make it easier for people to
-reject freedom-trampling, user-dominating, non-free software by
+reject freedom-trampling, user-dominating, nonfree software by
providing free software to replace it. For those who don't have the
-moral courage to reject the non-free software, when that means some
+moral courage to reject the nonfree software, when that means some
practical inconvenience, what we try to do is give a free alternative
so that you can move to freedom with less of a mess and less of a
sacrifice in practical terms. The less sacrifice the better. We want
@@ -457,27 +470,29 @@
thinking of freedom and cooperation with society as if they are
opposites. But here they're on the same side. With free software you
are free to cooperate with other people as well as free to help
-yourself. With non-free software, somebody is dominating you and
+yourself. With nonfree software, somebody is dominating you and
keeping people divided. You're not allowed to share with them, you're
not free to cooperate or help society, anymore than you're free to
help yourself. Divided and helpless is the state of users using
-non-free software.</p>
+nonfree software.</p>
<p>We've produced a tremendous range of free software. We've done what
people said we could never do; we have two operating systems of free
software. We have many applications and we obviously have a lot
farther to go. So we need your help. I would like to ask you to
volunteer for the GNU project; help us develop free software for more
-jobs. Take a look at <a href="/help/">http://www.gnu.org/help</a> to
+jobs. Take a look at <a href="/help/help.html">gnu.org/help</a> to
find suggestions for how to help. If you want to order things, there's
a link to that from the home page. If you want to read about
philosophical issues, look in /philosophy. If you're looking for free
software to use, look in /directory, which lists about 1900 packages
now (which is a fraction of all the free software out there). Please
write more and contribute to us. My book of essays, “Free
-Software and Free Society”, is on sale and can be purchased at
-<a href="http://www.gnu.org/">www.gnu.org</a>. Happy hacking!</p>
+Software and Free Society,” is on sale and can be purchased at
+www.gnu.org <a href="#foot-9">[9]</a>. Happy hacking!</p>
+<div class="column-limit"></div>
+<h3 class="footnote">Footnotes</h3>
<ol>
<li id="foot-1">Guy Steele designed the original symmetrical Emacs
command set; then he and I began implementing Emacs (on top of TECO),
@@ -498,7 +513,7 @@
<li id="foot-4">The background of this plan, which I did not state
explicitly in the talk, is that during an initial period the ex-AI-Lab
hackers, whether at Symbolics or LMI, continued contributing their
-changes to the MIT Lisp Machine system — even though the
+changes to the MIT Lisp Machine system—even though the
contract did not require this. Symbolics' plan was to rupture this
cooperation unilaterally.</li>
@@ -524,11 +539,16 @@
<li id="foot-8">I don't mind if a very complex and heavyweight
function takes keyword arguments. What bothers me is making simple
basic functions such as “member” use them.</li>
+
+<li id="foot-9">In 2021, this book can be purchased from <a
+href="https://shop.fsf.org/books-docs/free-software-free-society-selected-essays-richard-m-stallman-3rd-edition">
+GNU Press</a>.</li>
</ol>
+</div>
</div><!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.html" -->
-<div id="footer">
+<div id="footer" role="contentinfo">
<div class="unprintable">
<p>Please send general FSF & GNU inquiries to
@@ -546,13 +566,13 @@
to <a href="mailto:web-translators@gnu.org">
<web-translators@gnu.org></a>.</p>
- <p>For information on coordinating and submitting translations of
+ <p>For information on coordinating and contributing translations of
our web pages, see <a
href="/server/standards/README.translations.html">Translations
README</a>. -->
Please see the <a
href="/server/standards/README.translations.html">Translations
-README</a> for information on coordinating and submitting translations
+README</a> for information on coordinating and contributing translations
of this article.</p>
</div>
@@ -573,7 +593,7 @@
There is more detail about copyright years in the GNU Maintainers
Information document, www.gnu.org/prep/maintain. -->
-<p>Copyright © 2003, 2007, 2013, 2014, 2020 Free Software Foundation,
Inc.</p>
+<p>Copyright © 2003, 2007, 2013, 2021 Free Software Foundation, Inc.</p>
<p>This page is licensed under a <a rel="license"
href="http://creativecommons.org/licenses/by-nd/4.0/">Creative
@@ -583,10 +603,10 @@
<p class="unprintable">Updated:
<!-- timestamp start -->
-$Date: 2020/10/02 08:29:05 $
+$Date: 2021/11/04 03:30:16 $
<!-- timestamp end -->
</p>
</div>
-</div>
+</div><!-- for class="inner", starts in the banner include -->
</body>
</html>
Index: po/rms-lisp.zh-cn.po
===================================================================
RCS file: /web/www/www/gnu/po/rms-lisp.zh-cn.po,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- po/rms-lisp.zh-cn.po 4 Nov 2021 03:03:48 -0000 1.17
+++ po/rms-lisp.zh-cn.po 4 Nov 2021 03:30:16 -0000 1.18
@@ -14,7 +14,6 @@
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Outdated-Since: 2021-11-02 14:27+0000\n"
#. type: Content of: <title>
msgid ""
@@ -145,13 +144,12 @@
"they added some. For instance, one of the first was a looping construct, "
"which was <code>< ></code>. You would put those around things and "
"it would loop. There were other cryptic commands that could be used to "
-"conditionally exit the loop. To make Emacs, we <a href="
-"\"#foot-1\">[1]</a> added facilities to have subroutines with names. Before "
-"that, it was sort of like Basic, and the subroutines could only have single "
-"letters as their names. That was hard to program big programs with, so we "
-"added code so they could have longer names. Actually, there were some rather "
-"sophisticated facilities; I think that Lisp got its unwind-protect facility "
-"from TECO."
+"conditionally exit the loop. To make Emacs, we <a href=\"#foot-1\">[1]"
+"</a> added facilities to have subroutines with names. Before that, it was "
+"sort of like Basic, and the subroutines could only have single letters as "
+"their names. That was hard to program big programs with, so we added code so "
+"they could have longer names. Actually, there were some rather sophisticated "
+"facilities; I think that Lisp got its unwind-protect facility from TECO."
msgstr ""
"ä¸è¿ï¼äººä»¬æ³è¦æ©å±è¯¥è¯è¨ä½¿ä¹å¸¦ä¸ç¼ç¨è½åï¼æ以人们就添å
äºä¸äºåè½ãä¾å¦ï¼æ"
"æ©æ·»å çå°±æ循ç¯ç»æï¼å°±æ¯<code>< ></code>ãä½
æä¸è¥¿æ¾å¨è¿ä¸¤ä¸ªç¬¦å·"
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- www/gnu rms-lisp.zh-cn.html po/rms-lisp.zh-cn-e...,
GNUN <=