- BEVEZETÉS
A régi szép időkben (a számítógépek "aranykorában") könnyű volt megkülönböztetni
az "igazi férfiakat" a "hátulgombolósoktól". Akkor azok voltak az igazi férfiak,
akik megértették a programozást, a hátulgombolósok pedig azok, akik nem. Az
igazi programozó ilyeneket szólt, hogy DO I=1,10 , meg hogy ABEND
(igazándiból színtiszta nagybetűkkel beszéltek), a többiek pedig azt mondták,
hogy "a számítógép túl bonyolult nekem", meg hogy "nem tudok kapcsolatot
teremteni a számítógéppel - nekem túlságosan személytelen". (Amint ezt az /1/
irodalomban láthatjuk, az igazi férfiak nem félnek attól, hogy nem tudnak
kapcsolatot teremteni, és attól sem, hogy elszemélytelenednek.
Csakhogy, mint mindig, változnak az idők. Manapság olyan világgal kell
szembenéznünk, amelyben öreg nénikéknek számítógép van a tűzhelyükben és 12 éves
flipperező kölykök golyózhatják ki a kádból az igazi férfiakat. Manapság
akárkinek lehet saját különbejáratú házi számítógépe. Az igazi programozót az a
veszély fenyegeti, hogy kihal, és ZX80-nal felszerelt középiskolások fogják
helyettesíteni.
Tiszta sor, hogy ki kell mutatnunk, mi a különbség a tipikus flipperező
középiskolás és az igazi programozó között. Ha a különbséget tisztáztuk, ez
mutat majd valamit a fiataloknak, valamit, amire törekedhetnek, egy apuka-képet,
ha úgy tetszik. Ugyancsak segítünk megmagyarázni az igazi programozó főnökeinek,
hogy hiba lenne, ha a vezetésük alatt álló igazi programozókat 12 éves flipper
öcsikkel helyettesítenék (jelentős bérmegtakarítást érve el ezáltal).
- NYELVEK
Legszembetűnőbb különbség a plebs és az igazi programozó között a használt
nyelv. Az igazi programozó FORTRAN ban dolgozik. A hátulgombolós Pascalban .
Egyszer Niklaus Wirth-et, a Pascal megalkotóját megkérdezték, hogy hívják, amire
azt válaszota, hogy hívhatják név szerint "Virt"-nek, és érték szerint
"Worth"-nek. (Lefordíthatatlan szójáték, a worth értéket is jelent.) Adódik,
hogy Niklaus Wirth hátulgombolós, az igazi programozó csak egyféle
paraméterátadási módot használ, mégpedig a cim szerintit, amint ezt az OS/370 G
és H FORTRAN fordító teszi. Az igazi programozónak nincs szüksége ilyen
absztrakt fogalmakra ahhoz, hagy elvégezze a munkáját - tökéletesen érzi magát
egy kártyalyukasztóval, egy FORTRAN fordítóval, meg egy sörrel. úgyhogy
jegyezzük meg a következőket:
- Az igazi programozó a szimbólum manipulációt
FORTRAN ban csinálja.
- Az igazi programozó a szövegkezelést
FORTRAN ban csinálja.
- Az igazi programozó a gépidőelszámolást - már ha megcsinálja egyáltalán -
FORTRAN ban csinálja.
- Az igazi programozó a mesterséges intelligencia programokat
FORTRAN ban
csinálja.
Amit nem lehet megcsinálni FORTRANban, azt meg lehet csinálni assemblyben. Amit
nem lehet megcsinálni assemblyben, azt nem lehet megcsinálni.
- STRUKTURÁLT PROGRAMOZÁS
A számítógéptudomány tudósai az elmúlt öt évben kitalálták a strukturált
programozást. Azt állítják, hogy a programokat könnyebb megérteni, ha bizonyos
speciális nyelvi konstrukciókat és technikákat használunk, bár nem értenek
teljesen egyet abban, hogy melyeket. Álláspontjukat rendszerint olyan példákkal
illusztrálják, amelyek elférnek valami zugfolyóirat egy lapján - tisztán
látszik, hogy ez nem elég ahhoz, hogy meggyőzzön bárkit is. Mikor kijártam az
iskolát, azt hittem, hogy én vagyok a legtökösebb programozó a világon.
Verhetetlen amőbaprogramot tudtam írni öt különböző nyelven, és 1000 soros
programokat írtam, amelyek MÜKÖDTEK!. (Igazán!!.) Aztán a négybetűs életben az
első feladatom az volt, hogy értsek meg egy 200000 soros FORTRAN programot, és
gyorsítsam fel a kétszeresére. Akármelyik igazi programozó meg fogja mondani
neked, hogy az egész világ strukturált programozása sem fog segíteni ilyen
feladat megoldásakor, csak az, ha VALÓBAN tehetséges vagy. Néhány megfigyelés az
igazi programozóról, és a strukturált programozásról:
- Az igazi programozó nem fél a
GOTO -tól.
- Az igazi programozó öt lap hosszú
DO ciklust ír anélkül, hogy belezavarodna.
- Az igazi programozó szereti az aritmetikai
IF -eket - érdekesebb tőlük a
program.
- Az igazi programozó önmódosító kódot ír - különösen akkor, ha meg bír vele
spórolni 20 nanoszekundumot egy kis ciklus közepén.
- Mivel a
FORTRAN ban nincs strukturált REPEAT , UNTIL vagy CASE utasítás, az
igazi programozónak nem kell ügyelnie arra, hogy ne használja ezeket. (De persze
szükség esetén szimulálhatja őket GOTO -val.)
Az adatstruktúráknak is sok figyelmet szentelnek újabban, bizonyos körökben
egyre népszerűbbek az absztrakt adattípusok, pointerek, listák, stringek. Wirth
(a fent említett hátulgombolós) képes volt megírni egy egész könyvet erről /2/,
amiben azt mondja, hagy a programot nem akárhogy kell megírni, hanem az
adatstruktúrákra kell építeni. Viszont amint ezt minden igazi programozó tudja,
az egyetlen használható adatstruktúra a tömb. Stringek, listák, struktúrák,
halmazok: ezek mind a tömb speciális esetei, és ugyanúgy is kezelhetjükőket,
anélkül, hogy a programozási nyelvünket túlbonyolítanánk velük. A legrosszabb
mindamellett ezekben az adatstruktúrákban az, hogy ráadásul külön deklarálni is
kell őket, pedig az igazi programozási nyelvekben, amint azt mindannyian tudjuk,
implicit típusdefinició van a (6 betűs) változónév első karaktere a lapján.
- OPERÁCIÓS RENDSZEREK
Milyen operációs rendszert használ egy igazi programozó? CP/M -et? Isten ments, a
CP/M igazából egy játékszer operációs rendszer, csak anyókák és iskoláskölykök
értik meg és használják.
A UNIX sokkal komplikáltabb - az átlagos UNIX buherátornak sose jut eszébe, hogy
is hívják ezen a héten a PRINT parancsot - de ha belejövünk, kiderül, hogy a
UNIX egy reklámozott videójáték. Az emberek nem csinálnak komoly munkákat UNIX
alatt - vicceket küldözgetnek szerte a világba az UUCP hálózaton, meg
kalandjátékokat írnak.
Nem, az igazi programozó természetesen OS/370 -et használ. Az igazi programozó
csak előveszi a JCL kézikönyvét, és máris megtalálja (és meg is érti!) az
IJK305I üzenet leírását. Az igazi programozó JCL -t tud írni anélkül, hogy
egyáltalán kinyitná a kézikönyvet. Az igazán dögös programozó hexa számológép
nélkül találja meg a hat megabyteos dumpban a hibát. (A saját szememmel láttam!)
Az OS igazán figyelemreméltó operációs rendszer. Több napos munkát lehet
tönkretenni egyetlen rossz helyre rakott szóközzel, úgyhogy az éberség, az
kívánatos. A rendszerhez hozzáférés tuti eszköze a kártyalyukasztó. Némelyek
ugyan azt állítják, hogy az OS/370 alatt időosztásos rendszer is van, de gondos
vizsgálat után arra a következtetésre jutottam, hogy ez tévedés.
- ESZKÖZÖK
Milyen eszközöket használ az igazi programozó? Elméletileg az igazi programozó a
mérnöki pultról is bebillenyűzheti a programjait. Hajdanában, mikor a
számítógépeknek még voltak mérnöki pultjaik, és ez némelykor így is történt. A
tipikus igazi programozó az egész betöltőt fejből tudja hexában, és kijavítja,
ha a programja felülirja azt. (Annakidején a memória még memória volt, és nem
felejtett el mindent, mikor az áramot kikapcsolták. Manapság vagy elfelejti a
dolgokat amikor nem kéne, vagy olyasmire is emlékszik, amit jobb lett volna
elfelejteni.) A legenda szerin Seymour CRAY, a CRAY I és II szuperszámítógépek
tervezője (meg a legtöbb CDC gépé) a CDC 7600 első operációs rendszerét a
mérnöki pultról pötyögte be, amikor a gépet először bekapcsolták. Fölösleges
mondanunk, hogy Seymour Cray természetesen igazi programozó.
Kedvenc igazi programozóm a Texas Instruments egyik rendszerprogramozója. Az
egyik nap távolsági hívást kapott egy usertől, akinek fejreállt az operációs
rendszere egy fontos munka mentésének a közepén. Jim telefonon keresztül
megjavította a kárt, lemez i/o utasításokat iratva be a userrel a mérnöki
pultról, aztán hexában kijavította a rendszertáblázatokat, a regisztereket meg
telefonon olvasták neki. Erkölcsi tanulság: bár az igazi programozó
szerszámkészletében van egy lyukasztó és egy sornyomtató, szükség esetén meg bír
lenni egy telefonnal meg egy mérnöki pulttal is.
Némely cégeknél a szövegszerkesztés többé nem úgy néz ki, hogy tíz mérnök áll
sorba egy 029-es lyukasztóhoz. Igazándiból abban az épületben, ahol én dolgozom,
nincs is lyukasztó. Az igazi programozó ilyen helyzetben szövegszerkesztőkkel
dolgozik. A legtöbb rendszerben többféle szövegszerkesztő van, és az igazi
programozónak gondosan ki kell választania azt, amelyik a legjobban illik az
egyéniségéhez. Sokan úgy gondolják, hogy a világon a legjobb szövegszerkesztőket
a Xerox palo altói kutatóközpontjában fejlesztették ki, az Alto és Dorado
gépekre. /3/ Sajnálatos módon nincs olyan igazi programozó, aki olyan gépet
használt volna, ahol az operációs rendszert Smalltalk nak hívják, és
természetesen olyan sem, aki az egér farkát rángatná.
Némely dolgot ezekből a Xerox editorokból megcsináltak olyan gépen is, ahol az
operációs rendszernek rendes neve van. Ilyen az EMACS és a VI . A gond ezekkel az
editorokkal az, hogy az igazi programozó szerint az "azt kapod amit látsz" elv
éppen olyan hibás az editoroknál, mint a nőknél. Nem, az igazi programozó az
"ezt akartad, hát nesze" editort szereti - bonyolultat, titokzatosat,
veszélyeset. TECO -t, példának okáért.
Megfigyelték, hogy egy TECO parancssorozat jóval érzékenyebb a vonal zajára,
mint az olvashatóbb szöveg. /4/ Az egyik izgalmas játék amit a TECO -val játszani
lehet, hogy beírjuk a nevünket parancsnak, aztán megpróbáljuk kitalálni, mit
csinál. Gyakorlatilag bármely gépelési hiba valószínűleg tönkreteszi a
programot, vagy rosszabb esetben finom, misztikus hibákat helyez egy már működő
szubrutinba.
Ebből kifolyólag az igazi programozók kerülik egy majdnem működő program
editálását - úgy gondolják, hogy egyszerűbb belenyúlni a bináris kódba a
SUPERZAP programmal (vagy ennek megfelelőjével a nem IBM gépeken). Ez a recept
annyira jó, hogy az IBM gépeken sok működő programnak már nincs is köze az
eredeti forráskódhoz. Sokszor az eredeti forrás már nincs is meg. Most mikor egy
ilyen programba bele kell nyúlni, a főnök nem tehet mást, minthogy hív egy igazi
programozót. Nincs olyan hátulgombolós strukturált programozó, akinek egyáltalán
fogalma lenne arról, hol is kell kezdeni. Ezt hivják "biztosított munkahelynek".
Néhány olyan szerszám, amit az igazi programozó nem használ:
FORTRAN preprocesszorok, mint a MOTRAN és a RATFOR . Gyermekké tesznek. Lásd a
fenti megjegyzéseket a strukturált programozásról.
- Forrásnyelvi debuggerek - az igazi programozó TUD dumpot olvasni.
- Indextúlcsordulást jelző fordítók. Tönkreteszik a kreativitást, az
EQUIVALENCE izgalmasabb használatát, és lehetetlenné teszik a rendszerterület
negatív indexekkel módosítását.
- Forráskód nyilvántartó rendszerek. Az igazi programozó a forráskódot zárt
szekrényben tartja, mert nyilvánvaló, hogy a tulajdonos nem hagyhatja
őrizetlenül szanaszéjjel értékes programjait. /5/
- AZ IGAZI PROGRAMOZÓ MUNKA KÖZBEN
Hol dolgozik az igazi programozó? Milyen programok ,méltók ilyen tehetséges
egyéniség erőfeszítésére? Biztosak lehetünk abban, hogy az igazi programozót nem
fogjuk rajtakapni, amint éppen számlázóprogramot ír COBOL ban, vagy az előfizetők
címlistáját szortolja valami folyóiratnak. Az igazi programozó betű szerint
eget-földet rázó feladatot kíván.
- Igazi programozók azok, akik a Los Alamos laborban dolgoznak, és atombomba
szimulációkat futtatnak
CRAY I/II gépeken.
- Igazi programozók fejtik meg az NSA-nál az orosz adásokat.
- Jórészt több ezer igazi programozó erőfeszítésének köszönhető, hogy a mieink
hamarább eljutottak a Holdra mint a ruszkik (és vissza is jöttek!).
- Igazi programozók dolgoznak a Boeingnél és írják a cirkáló rakéták operációs
rendszereit.
A legtökösebb igazi programozók közül néhány a Jet Propulsion laborban dolgozik
Kaliforniában. Sokan közülük fejből tudják a Voyager és a Pioneer űrszondák
operációs rendszerét.
Nagy, földi FORTRAN programok és kis, a szondán levő assembly programok kombinációival a navigáció és a rögtönzés hihetetlen mutatványát vitték véghez,
10 km-es pontossággal érve a Szaturnuszhoz 6 év repülés után, kijavítva vagy
átkapcsolva a tönkrement rádiókat, érzékelőket, telepeket. Állítólag egy igazi
programozónak sikerült a Voyager szondán néhány száz byte használatlan területre
besuvasztani egy mintafelismerő programot, amely megkereste, megtalálta és
lefényképezte a Jupiter egy ismeretlen holdját.
A jelenlegi tervek szerint a Galileo űrszonda gravitációval segített pályán fog
menni a Mars mellett a Jupiter felé. Ez a pálya 80+-3 km-re halad el a Mars
felszíne fölött. Ilyen pontosságú navigációt senki sem bízna egy Pascal
programra (vagy egy Pascal programozóra).
Amint ez sejthető, a világ sok igazi programozója dolgozik az amerikai
kormánynak (Jórészt a hadügyminisztériumnak). Ennek nyilván így is kell lennie.
Újabban sötét felhő jelent meg az igazi programozó láthatárán. Úgy tünik, hogy a
Hadügyminisztériumban valami magas polcra került hátulgombolósok az találták ki,
hogy minden katonai programnak valami teljesen egységes "Ada" nevezetű nyelvben
kell íródnia (Copyright DoD). Egy ideig úgy tűnt, hogy az Ada olyan nyelv, amely az igazi programozással ellentétes - vannak benne struktúrák, adattípusok,
szigorú típusellenőrzés meg pontyosvesszők. Szóval olyan nyelv, ami kiszorítja a
kreativitást az igazi programozóból. Szerencsére a Hadügyminisztérium által
elfogadott nyelv elég érdekes ahhoz, hogy az igazi programozó számára is
elviselhető legyen - bonyolult, és tartalmaz olyan lehetőségeket, amelyekkel meg
lehet kavarni az operációs rendszert, újrarendezni a memóriát. És Edsgar
Dijkstrának nem tetszik. /6/ (Dijkstra, amint ezt az olvasó bizonyára tudja, a
"GOTO utasítás közismert ártalmasságáról" cimű cikk szerzőjeként szerzett
hírnevet, amely mérföldkő volt a programozásmódszertan fejlődésében, és a Pascal
programozók meg a hátulgombolósok tapsa kísérte.) Egyébként az igazi programozó
akármilyen nyelvben is bír FORTRAN programokat írni.
Az igazi programozó kompromisszumot is köthet, és dolgozhat valami kevésbé
triviális feladaton is, mint az emberek kipusztítása, feltéve, hogy eleget
fizetnek. Példának okáért néhány igazi programozó videojátékokat ír az Atarinak.
(De persze nem játszik velük, mert az igazi programozó mindig tudja, hogyan kell
megverni a gépet, és ebben nincs semmi érdekes.) A Lucasfilmnél mindenki igazi
programozó. (Igazán hülyeség lenne nem megcsapolni ötvenmilló Startrek-szurkoló
pénzét.) A számítógépes grafika területén az átlagnál kevesebb az igazi
programozó, valószínűleg azért, mert még nem jött rá, mire is jó a
számítógépes grafika. Másrészt viszont a grafikát FORTRAN ban csinálják, úgyhogy
elég sok ember grafikázik, így kerülve el azt, hogy COBOL ban kelljen
adatfeldolgoznia.
- AZ IGAZI PROGRAMOZÓ JÁTÉK KÖZBEN
Az igazi programozó azzal játszik, amivel dolgozik. Igazából folytonosan
csodálkozik, hogy a munkaadója fizet azért, hogy ő azt csinálja, amit egyébként
is tenne (de persze óvakodik attól, hogy ezt hangosan is kifejezze).
Mindenesetre néha kilép a szobájából egy kiss friss levegőt szívni, meg pár üveg
sörért. Néhány tipp, miről ismerszik meg az igazi programozó a számítógéptől
távol:
- Buliban azok az igazi programozók, akik a sarokban ülve az operációs
rendszerek védelméről beszélgetnek, meg arról, hogy hogyan lehet azt megkerülni.
- A meccsen az az igazi programozó, aki minden rúgást összehasonlít a futtatott
szimulácó listájával.
- A strandon az az igazi programozó, aki folyamatábrákat rajzol a homokba.
- Temetésen az igazi programozó mondja azt, hogy "Szegény George, pont
befejezte volna azt a szortoló rutint, ha el nem viszi a szívroham."
- Az ABC-ben az az igazi programozó, aki maga akarja a lézerceruzával leolvasni
a vonalkódot a konzervekről, mondván, hogy a kártyáit se bízta sose a
lyukasztókra.
- AZ IGAZI PROGRAMOZÓ TERMÉSZETES SZOKÁSAI
Milyen környezetben érzi jól magát az igazi programozó? Ez ugye fontos kérdés az
igazi programozó főnökeinek. Tekintve, hogy az igazi programozó mennyibe kerül,
érdemes őt olyan környezetbe helyezni, ahol a legjobban végzi a munkáját. A
tipikus igazi programozó élettere termináljának közvetlen közelére terjed ki.
Ezen teminál körül a következők találhatók:
- Az összes program listája, amelyen az igazi programozó valaha is dolgozott,
nagyjából időrendi sorrendben, elfogalva a szoba összes sík felületét.
- Vagy fél tucat félig üres csésze hideg kávé. Esetleg csikkek is úszhatnak a
kávéban, ha nem lehetett megtalálni a listák között a hamutartót. Néha a
csészékben narancslé van.
- Hacsak nem különlegesen jó,
OSL JCL kézikönyvek és a Principles of Operation,
néhány érdekesebb részletnél kinyitva.
- A falon egy sornyomtató naptár (az 1969-es évre).
- A padlón szétszórva csokispapírok.
- A fiók alján egy folyamatábrarajzoló sablon, amit az előző lakó hagyott itt.
(Az igazi programozó programokat ír, nem pedig dokumentációt.)
Az igazi programozó 30, 40. vagy akár 50 órát is tud dolgozni egyfolytában,
intenzív nyomás alatt. Igazából így szeret dolgozni. A hosszú válaszidő nem
zavarja az igazi programozót - legalább szundíthat egy kicsit, míg lemegy a
fordítás. Ha nincs elég nyomás az igazi programozón, úgy igyekszik rendezni a
dolgokat, hogy a feladat valami kis, de érdekes részével fogalalkozik kilenc
hétig, majd a maradékot az utolsó héten fejezi be, két vagy három, 50 órás
maratonban. Ezzel nem csak az őrületbe kergeti a főnökét, aki úgy gondolja, hogy
a projekt sosem lesz kész, hanem ugyancsak jó ürügye van arra, hogy ne kelljen
dokumentációt csinálnia. Általában:
- Az igazi programozó nem dolgozik 9-5-ig. (Hacsak nem este 9-től reggel 5-ig.)
- Az igazi programozó nem visel nyakkendőt.
- Az igazi programozó nem hord digócipőt.
- Az igazi programozó ebédre jön be /7/.
- Az igazi programozó vagy tudja a felesége nevét, vagy nem. Mindenesetre az
ASCII (vagy EBCDIC ) kódtáblát fejből tudja.
- Az igazi programozó nem tud főzni. Az ABC nincs nyitva reggel 3-kor. Az igazi
programozó ropin meg kávén él.
- A JÖVŐ
Mit mondhatunk a jövőről? Mindenesetre el kell gondolkodnunk azon, hogy a
programozók újabb generációjának nem olyan az életszemlélete, mint az
elődeiknek. Sokan közülük nem is láttak olyan számítógépet, amelynek egyáltalán
lett volna mérnöki pultja. Manapság szinte egyikük sem tud számológép nélkül
hexában számolni. A most végzettek puhák, megvédték őket a programozás
valóságától a forrásszintű nyomkövetők, a zárójeleket számoló szövegszerkesztők
meg a "barátságos" operációs rendszerek. Sőt, ami a legszörnyűbb, ezek közül az
úgynevezett számítógéptudósok közül némelyek anélkül kerülnek ki az egyetemről,
hogy megtanulták volna a FORTRAN t. El fogják árasztani a világot a UNIX
buzerátorok meg a Pascal programozók?
Nekem úgy tűnik, hogy az igazi programozó számára van jövő. Sem az OS/370 sem a
FORTRAN> nem mutatja a kihalás jelét, a világ minden Pascal programozója összes
erőfeszítése ellenére. Még olyan kis trükkök is, hogy a FORTRAN ba strukturált
kódolási konvenciókat vezessenek be, sikertelenül jártak.
Persze megjelentek már a FORTRAN-77 fordítók, de hál' Istennek mindegyiket
vissza lehet kapcsolni a jó öreg FORTRAN-66 -ba már az első programsorban, hogy
úgy forduljanak a DO ciklusok, ahogy azt az Isten megteremtette.
Még a UNIX sem olyan rossz az igazi programozónak mint hajdanán volt. A
legutóbbi UNIX verziók már egészen úgy néznek ki, mint egy operációs rendszer,
olyan, amely méltó az igazi programozó érdeklődésére. Két különböző, és kicsit
inkompatibilis user interface, misztikus bonyolult teletype driver, meg
virtuális memória. Ha figyelmen kívül hagyjuk azt a tényt, hogy a C
"strukturált", még a C programozás is elfogadható az igazi programozónak. Végül
is nincs ellenőrzés, a változónevek hét (tíz? nyolc?) karakteresek, és bedobták
a pointer adattípust is, mintha a FORTRAN és az assembly legjobb részei össze
lennének keverve. És még nem is szóltunk a DEFINE ravaszabb használatáról.
Nem, a jövő nem tűnik sötétnek. Az elmúlt néhány évben a sajtó még meg is
jegyezte, hogy igazi programozók és buherátorok kerülnek ki a Stanfordról és a
MIT-ről is. Láthatóan az igazi programozás szelleme bennük is él. Amíg lesznek
betegen definiált célok, bizarr hibák és teljesíthetetlen határidők, mindig
lesznek igazi programozók, akik rábukkannak a problémára, és megoldják,
megspórolva a dokumentációt. Sokáig éljen a FORTRAN .
Köszönetnyilvánítás
Köszönetemet fejezem ki Jan E.-nek, Dave S.-nek, Rich G.-nek és Rich E.-nek,
mert segítettek jellemezni az igazi programozót, Kathy E.-nek, hogy rávett, és
ATD!AVSDS:MARK-nak a kezdeti inspirációért. (Meg magamnak, Dave N.-nak a
gépelésért!)
Irodalom
- Feirstein, B.: "Real Men Dont Eat Quiche", New York, Pocket Books, 1982.
- Wirth, N.: "Algorithms + Data Structures = Programs",Prentice-Hall, 1976.
- Ilson, Awe.: "Recent Research in Text Processing", IEEE Trans. Prof. Commun.,
Vol PC-23, No. 4, Dec 4th 1980.
- Finseth, C.: "Theory and Practice of Text Editors - or - a Cookbook for An
EMACS", B.S. thesis, MIT/LCS/TM-165,Massachusetts Institute of Technology, May
1980.
- Weinberg, G.: "The Psychology of Computer Programming", New York, Von
Nostrand Reinhold, 1971, p.110.
- Dijkstra, E.: "On the GREEN Language submitted to the DoD", Sigplan notices,
Vol 3 No. 10, Oct 1978.
- sdcarl!lin, "Real Programmers", UUcp-net, Thurs Oct 21 16:55:16 1982.
- Rose, Frank.: "Joy of Hacking", Science 82, Vol 3 No. 9,Nov 82, pp 58-66.
- "The Hacker Papers", Psychology Today, August 1980.
|