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).
Legszembetûnôbb különbség a plebs és az igazi programozó
között a használt nyelv. Az igazi programozó FORTRANban
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álasgramozó szereti az aritmetikai IF-eket -
érdekesebb tôlük a program.
"-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:
1. Az igazi programozó a szimbólum manipulációt FORTRANban
csinálja.
2. Az igazi programozó a szövegkezelést FORTRANban csinálja.
3. Az igazi programozó a gépidôelszámolást - már ha megcsinálja
egyáltalán - FORTRANban csinálja.
4. Az igazi programozó a mesterséges intelligencia programokat
FORTRANban 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.
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örátornak
sose jut eszébe, hogy is hívják ezen a héten a PRINT parancsot -
ü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:
1. Az igazi programozó nem fél a GOTO-tól.
2. Az igazi programozó öt lap hosszú DO ciklust ír anélkül,
hogy belezavarodna.
3. Az igazi programozó szereti az aritmetikai IF-eket -
érdekesebb tôlük a program.
4. 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.
5. Mivel a FORTRANban 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 alapján.
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.
5 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, t akartad, hát nesze" editort szereti -
bonyolultat, titokzatosat, veszö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 pa forráskódot zárt szekrényben tartja, mert nyilvánvaló, hogy
a tulajdonos ne
/3/ Sajnálatos módon nincs olyan igazi programozó, aki olyan
gépet használt volna, ahol az operációs rendszert Smalltalknak
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:
1. FORTRAN preprocesszorok, mint a MOTRAN és a RATFOR.
Gyermekké tesznek. Lásd a fenti megjegyzéseket a
strukturált programozásról.
2. Forrásnyelvi debuggerek - az igazi programozó TUD dumpot
olvasni.
3. 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.
4. 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/
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 COBOLban, 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.
1. Igazi programozók azok, akik a Los Alamos laborban
dolgoznak, és atombomba szimulációkat futtatnak CRAY I/II
gépeken.
2. Igazi programozók fejtik meg az NSA-nál az orosz adásokat.
3. 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!).
4. 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
indig tudja,
hogyan kell megverni a gépet, és ebben nincs semmi érdekes.) A7
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
"GOTi programozó? Ez
ugye fontos kérdés az igazi programozó fônökeinek. Teket, 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 sem sem jött rá, mire
is jó a számítógépes grafika. Másrészt viszont a grafikát
FORTRANban csinálják, úgyhogy elég sok ember grafikázik, így
kerülve el azt, hogy COBOLban kelljen adatfeldolgoznia.
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:
1. 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.
2. A meccsen az az igazi proan:
1. Az igazi programozó nem dolgozik 9-5-ig. (Hacsak nem este
9
3. A strandon az az igazi programozó, aki folyamatábrákat
rajzol a homokba.
4. 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."
5. 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.
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:
1. 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.
2. 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.
3. Hacsak nem különlegesen jó, OS JCL kézikönyvek és a
Principles of Operation, néhány érdekesebb részletnél
kinyitva.
4. A falon egy sornyomtató naptár (az 1969-es évre).
5. A padlón szétszórva csokispapírok.
6. 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 igazini a jó öreg
FORTRAN-66-ba már az elsô programsorban, hogy úgy forduljanakenzí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:
1. Az igazi programozó nem dolgozik 9-5-ig. (Hacsak nem este
9-tôl reggel 5-ig.)
2. Az igazi programozó nem visel nyakkendôt.
3. Az igazi programozó nem hord digócipôt.
4. Az igazi programozó ebédre jön be /7/.
5. Az igazi programozó vagy tudja a felesége nevét, vagy nem.
Mindenesetre az ASCII (vagy EBCDIC) kódtáblát fejbôl tudja.
6. Az igazi programozó nem tud fôzni. Az ABC nincs nyitva
reggel 3-kor. Az igazi programozó ropin meg kávén él.
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 megtanultcent Research in Text Processing", IEEE
Trans. Prof. Commun., Vol PC-23, Nrok 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 FORTRANba 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ö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!)
1. Feirstein, B.: "Real Men Dont Eat Quiche", New York, Pocket
Books, 1982.
2. Wirth, N.: "Algorithms + Data Structures = Programs",
Prentice-Hall, 1976.
3. Ilson, Awe.: "Recent Research in Text Processing", IEEE
Trans. Prof. Commun., Vol PC-23, No. 4, Dec 4th 1980.
4. 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.
5. Weinberg, G.: "The Psychology of Computer Programming", New
York, Von Nostrand Reinhold, 1971, p.110.
6. Dijkstra, E.: "On the GREEN Language submitted to the DoD",
Sigplan notices, Vol 3 No. 10, Oct 1978.
7. sdcarl!lin, "Real Programmers", UUcp-net, Thurs Oct 21
16:55:16 1982.
8. Rose, Frank.: "Joy of Hacking", Science 82, Vol 3 No. 9,
Nov 82, pp 58-66.
9. "The Hacker Papers", Psychology Today, August 1980.