ABC Programavimo Kalba: trumpas įvadas

Originalus pagal Steven Pemberton – https://homepages.cwi.nl/~steven/abc/

ABC yra interaktyvi programavimo kalba ir aplinka asmeninių kompiuterių, iš pradžių skirtas kaip gera pakeisti BASIC. Ji buvo sukurta pirmoji daro, užduoties analizė, programavimo užduotis.

ABC yra lengva išmokti (valandą, arba tiek tiems, kurie jau užprogramuoti), ir dar paprasta naudoti. Iš pradžių skirtas kaip kalba pradedantiesiems, ji vystėsi į galinga priemonė pradedantiesiems ir ekspertams panašūs.

Čia yra pavyzdys, funkcija žodžiai rinkti nustatyti visus žodžius dokumentas:

HOW TO RETURN words document:
PUT {} IN collection
FOR line IN document:
FOR word IN split line:
IF word not.in collection:
INSERT word IN collection
RETURN collection

Kai kurios funkcijos kalbos:

  • galingas kolekcija tik 5 duomenų tipų, kurie gali būti lengvai derinama
  • stiprus rašyti, dar be deklaracijas
  • apribojimų nėra (pvz max int), be galo išnaudotos atminties
  • patobulinti paramos iš viršaus į apačią programavimas
  • lizdus pagal įspaudimui
  • programos paprastai vienas ketvirtadalis ar penktadalis dydis ekvivalentas Pascal arba C.

Kai kurios funkcijos aplinka:

  • nereikia failai: procedūromis ir funkcijomis, bei globalių kintamųjų likti prisijungus iš
  • vienas nuoseklus veidas yra įrodyta, kad vartotojo visais laikais, ar vykdo komandas, redagavimo, arba įvažiuojančių įvesties programa
  • apibendrintas anuliuoti mechanizmas.

Čia pateiksiu trumpa apžvalga programavimo kalba, ABC ir jo įgyvendinimo, ir keli pavyzdžiai, ABC programas. Visa dokumentacija apie ABC yra ABC Programuotojas Vadove (informacija žemiau).

Kalbos

ABC yra paprasta išmokti, nes nedaug rūšių kalba (penki). Jei jūs jau žinote, Pascal ar kažką panašaus galite mokytis visą kalbą, valandą ar taip. Ji yra paprasta naudoti, nes duomenų tipai yra labai aukšto lygio.

Penkių rūšių:

  • numeriai: neapribotą ilgio, su tiksliai aritmetikos taisyklės
  • tekstus (stygos): taip pat neapribotą ilgis
  • junginiai: įrašus be lauko pavadinimas
  • sąrašai: rūšiuoti kolekcijas bet kokio tipo elementus (maišuose arba multi-ių)
  • lentelės: bendrųjų matricos, su bet kokio tipo raktai, vieno tipo elementų (baigtinių žymėjimus).

Aplinka

Įgyvendinimas apima programavimo aplinka, kuri leidžia gaminti programas labai daug lengviau, nes jis daug žino apie kalbą, ir todėl gali padaryti daug dirbti jums. Pavyzdžiui, jei įvedate W, sistema siūlo komandą užbaigimas jums:

W?RITE ?

Jei tai, ką norite, paspauskite [tab] ir vykdyti rašyti išraiška; jei jums norėjo WHILE jūs, tipas H, ir sistemos pokyčių pasiūlymą rungtynės:

WH?ILE ?:

Šis mechanizmas veikia ir komandas, kurias jūs nustatyti sau per daug. Be to, jei jūs rūšis atvira laikiklis ar citata, jums uždarymo laikiklis ar citata nemokamai. Galite nekreipti dėmesio į pasiūlymus, jei norite, ir tiesiog įveskite komandos visą dėmesį.

Yra parama darbo vietoms kurti įvairias programas. Kiekvienoje workspace kintamieji yra patvarios, taip, kad jei norite nustoti naudoti ABC ir grįžti vėliau, jūsų rodikliai yra vis dar ten, kaip jūs juos palikau. Tuo išvengiama būtinybė failų tvarkymo priemones: nėra esminis skirtumas tarp kintamų ir failą ABC.

Kalba yra stipriai-tipo, bet be deklaracijų. Rūšys yra nustatomos atsižvelgiant į kontekstą.

Paprasti Pavyzdžiai

(Antra) geriausias būdas įvertinti galia ABC yra matyti keletas pavyzdžių (pirmasis yra naudoti). Kas toliau, >>> yra greitai nuo ABC.
Yra penkių rūšių kalba: du pagrindiniai — Numerių ir Tekstų — ir tris struktūrinio — Junginiai, Sąrašus ir Lenteles.

Numeriai

Numeriai yra neapribotą ir saugomi tikslią:

>>> WRITE 2**1000
107150860718626732094842504906000181056140481170553360744375038837
035105112493612249319837881569585812759467291755314682518714528569
231404359845775746985748039345677748242309854210746050623711418779
541821530464749835819412673987675591655439460770629145711964776865
42167660429831652624386837205668069376

>>> PUT 1/(2**1000) IN x
>>> WRITE 1 + 1/x
107150860718626732094842504906000181056140481170553360744375038837
035105112493612249319837881569585812759467291755314682518714528569
231404359845775746985748039345677748242309854210746050623711418779
541821530464749835819412673987675591655439460770629145711964776865
42167660429831652624386837205668069377

Ne tikslius skaičius naudotis mašina-tikslumas:

>>> WRITE root 2
1.414213562373095

Tekstai

Tekstus (stygos simbolių), taip pat neapribotą:

>>> PUT (“ha ” ^^ 3) ^ (“ho ” ^^ 3) IN laugh
>>> WRITE laugh
ha ha ha ho ho ho

>>> WRITE #laugh
18

>>> PUT “Hello! “^^1000 IN greeting
>>> WRITE #greeting
7000

>>> WRITE greeting|4
Hell

>>> WRITE greeting@4|3
lo!

Sąrašai

Sąrašai yra rūšiuojami sąrašus, vertes, bet vienas kitas tipas:

>>> WRITE {1..10}
{1; 2; 3; 4; 5; 6; 7; 8; 9; 10}
>>> PUT {1..10} IN l
>>> REMOVE 5 FROM l
>>> INSERT 4 IN l
>>> INSERT pi IN l
>>> WRITE l
{1; 2; 3; 3.141592653589793; 4; 4; 6; 7; 8; 9; 10}

Jūs galite turėti sąrašus, bet tipo, kad čia yra sąrašas sąrašai:

>>> PUT {} IN ll
>>> FOR i IN {1..3}:
INSERT {1..i} IN ll
>>> WRITE ll
{{1}; {1; 2}; {1; 2; 3}}
>>> FOR l IN ll:
WRITE l /
{1}
{1; 2}
{1; 2; 3}
>>> WRITE #ll
3

Junginiai

Junginiai yra panašūs įrašai arba struktūrų, bet be lauko pavadinimai:

>>> PUT (“Square root of 2”, root 2) IN c
>>> WRITE c
(“Square root of 2”, 1.414213562373095)
>>> PUT c IN name, value
>>> WRITE name
Square root of 2
>>> WRITE value
1.414213562373095

Lentelės

Lentelės panašūs matricas:

>>> PUT {} IN tel
>>> PUT 4054 IN tel[“Jennifer”]
>>> PUT 4098 IN tel[“Timo”]
>>> PUT 4134 IN tel[“Guido”]

>>> WRITE tel[“Jennifer”]
4054

Jūs galite rašyti visas ABC vertės. Stalai yra laikomi rūšiuojami klavišai:

>>> WRITE tel
{[“Guido”]: 4134; [“Jennifer”]: 4054; [“Timo”]: 4098}

Klavišų funkcija grąžina sąrašą:

>>> WRITE keys tel
{“Guido”; “Jennifer”; “Timo”}

>>> FOR name IN keys tel:
WRITE name, “:”, tel[name] /
Guido: 4134
Jennifer: 4054
Timo: 4098

Programos Pavyzdžiai

(Antra) geriausias būdas įvertinti galia ABC yra matyti keletas pavyzdžių (pirmasis yra naudoti). Pavyzdžiuose, >>> yra greitai nuo ABC.
Kai kurie šių gaminių yra po nuorodą į šaltinį failą programa. Šių šaltinio failai buvo gaminama naudojant “abc -p” variantas, skirtas pakavimo erdvę. Išpakuokite jį į savo erdves, išsaugoti failą kaip F, pasirinkti jūsų vardas naujos darbo vietos W, ir sako:

abc -u -w W F

(jums gali laisvai pasirinkti vardai W ir F, bet išvengti naudojant esamą darbo srities pavadinimą W).

Naudoti Eliza interaktyviai, tiesiog vykdykite komandą ELIZA.

Žiūrėti Eliza kalbame, kad kažkas, vykdykite komandą

SESSION grammar

kai “gramatika” yra kai kurių gramatikos generuoti anglų sakiniai. Yra tik viena tokia gramatika pateikta, paranojikas, todėl jums pasakyti:

SESSION paranoid

Jei gramatika yra tuščias, tada Eliza stengiasi psychoanalyse save:

SESSION {}

Citata iš jos sąveikauja su savimi:

> Ar jums patinka tokia sąveika?
Kas klausimas!

Kodėl ABC yra gera mokymo tikslams

ABC lapai laiko mokyti principai

Su programavimo kalba, pavyzdžiui Pascal, patirtis rodo, kad didžiąją dalį laiko klasėje yra panaudotas detales kalbos, paliekant per mažai laiko mokyti apie tai, kas iš tiesų svarbu: principais, programavimas. Gana galbūt, vieną-terminas, žinoma, gali net gauti turo pristatome patarimų. Su ABC, pilnas kalbos, gali būti padengta per kelias valandas, paliekant pakankamai laiko, kad gydyti įdomus ir pamokantis pavyzdžiai programavimo išsamiai.

ABC yra gera mokymo principai

Skirtingai nuo BASIC, ABC yra kalba, kuri siūlo didelę paramą struktūrinio programavimo, net geriau nei Pascal. Patobulinimų, iš viršaus į apačią žingsnių programos plėtros, yra neatskiriama kalbos. Nes galingas duomenų tipų ABC, įskaitant lenteles (association matricas), algoritmai gali būti parašytas problema, orientuotas abstrakcijos lygio. Nėra GOTO pareiškimą, ABC ir raiškos neturi šalutinio poveikio.

ABC leidžia pasirinkti įdomių pavyzdžių

Su daugelio kitų kalbų, įskaitant BASICir Pascal, ji yra visada sunku pasirinkti įdomių pavyzdžių. Ypač pradžioje, žinoma, kai tik skaičių tipai ir matricos, buvo įvestos, tai yra labai sudėtinga dirbti sunkiau problemų, nei pasakyti kompiuterija vidurkis seka. Trūksta tvarkos ankstyvuoju taip pat gali sukelti studentams plėtoti blogas programavimo įpročius. Su ABC, jūs galite gydyti įdomių pavyzdžių, teisė nuo pradžios. Programavimo problemas, susijusias su tekstų (styginiams) yra taip lengva išspręsti ABC kaip problemos, su numeriais. Programos ABC dažnai penkių iki dvidešimt kartų, kaip trumpas, kaip ir jų kolegos užkoduotas BASICarba Pascal. Nėra skirtumo kokia ABC tarp programos ir procedūros.

ABC leidžia nustatyti sudėtingas užduotis

Iš esmės dėl tų pačių priežasčių, galite nustatyti, užduotys, jūs net ne galvoti apie tai, jei studentai turėjo programa, BASIC ar Pascal. Čia yra keletas pavyzdžių, pamokantis problemų, kad studentai galėtų išspręsti tik po kelių savaičių, naudojant ABC:

  • Gana-spausdinimas genealogijos medį, atsižvelgiant į lentelę, tėvų-vaikų santykius.
  • Rasti trumpiausią kelią per labirintą.
  • Teksto formatavimą, įskaitant funkcijų, pavyzdžiui, koregavimas, indenting, pastraipas, ir gaminti turinys ir rodyklė.

ABC yra studentas draugiškas

ABC yra visiškai interaktyvias, tai toli su edit-kaupti-vykdyti ciklą. Kalba turi didelę tipo tikrinimą be deklaracijų. Klaidos pranešimai yra į tašką, ir savaime suprantama, tiek sintaksės ir runtime klaidų, visada rodo vietoje šaltinio programą, kurioje buvo padaryta klaida. Speciali redaktorius ABC, kuri žino, ABC sintaksė ir kuri turi kelis UNDO, labai sumažina tiek galimybių, kad sintaksės klaidas (ne daugiau nesubalansuotas skliaustuose) ir į laiką, kurio reikia įvesti programos, todėl reikalauja mažiau laiko nuo instruktorius padėti su banalios problemos. ABC programos automatiškai rodomos gana-spausdintų, su įdubimas rodo loginis grupavimas. ABC aplinka yra patvarios, tai reiškia, kad kintamųjų (įskaitant lenteles) išgyventi sesiją ir tebėra prieinama tol, kol aiškiai ištrinti.

Naujienas

Atgal klausimų nebėra.

Klausimas 1

Trumpas Įvadas į B Kalbą
Žvilgsnis ne B Aplinkoje
Įgyvendinimo Planai už B

Klausimas 2

Ženklas 1 Įgyvendinimą
Pavyzdžiai apie B
Renginiai apie B
Lyginant Basic ir B
Palyginti Pascal ir B

Klausimas 3

IBM PC Pažangos
Kas yra Vardas apie B?
Failų Palaikymo Programa į B
Pasiūlymas Matricos/Vektorinių Funkcijų į B
Paspartinti B Įgyvendinimo

Klausimas 4

Naujas Unix Spaudai
B už IBM PC
Eh? B ‘ABC’, žr.? (pdf)
Programos Pavyzdys: Polinomas
(Labai) Paprasta Logika Programavimo į B
~1 <> 1, Gražus Skirtumas?

Klausimas 5

>> Nuo B iki ABC (pdf)
Valymo Asmuo Algoritmas
Backtracking į B: Budd Iššūkis
Primality Bandymų į B

Klausimas 6

Pažanga ABC
Šachmatų Programa į B
Suderinti Numeriai
Savo Patirtimi su ABC (įeina savarankiškai atkūrimo programa)
Alternatyva Paprasta Kalba ir Aplinka kompiuteris,

Tai yra PDF failai:

Skaičius 7 (persvarstytas perspausdinti; pdf)

Informacijos, kaip įsigyti, įdiegti ir naudoti įvairių ABC įgyvendinimą.
Trumpas Įvadas į ABC
Nuotykių Programa
Histogramos Programa

Skaičius 8 (pdf)

Naujienos
Publikacijos
Apie ABC Tipo sistema ir tikrintuvas
Gramatikos-analizės programa
Aštuonios Karalienės
Bendrosios paskirties duomenų bazėje

Leidiniai apie ABC

Meno Lisp Programavimo

Robin Jones, Clive Maynard, Ian Stewart. Vadovėlio tiems, kurie turi artimųjų pažintį su procedūrinių kalbų, pavyzdžiui, BASIC ar Pascal, bet kuris nebuvo įgyvendintas funkcinis kalbos kaip Lisp prieš. Be to, žingsnis po žingsnio įvadas į Lisp, ši knyga yra unikali tuo, iliustruojantis naudoti Lisp, kuriant realų projektą: sukurti ir įgyvendinti Lisp pagrįstas žodžiu kalbos ABC. Springer Verlag, Berlyno, 1990, ISBN 0-387-19568-8 ir ISBN 3-540-19568-8.

Cryptologic

Peter Landrock, Knud Nissen. Įvadas į kriptografija, pavyzdžiui, programas ABC. Danų kalba. Abacus Leidėjai, Vejle, Danija, 1990, ISBN 87-89182- 24-3.

Naudojant ABC Prototipas VDM Specifikacijos

Aaronas Kans ir Clive Hayton. ABC yra aukšto lygio, paprasta naudoti, būtina kalba, sukurta iš pradžių kaip pakeisti BASIC. Nors ir skirtas visų pirma kaip mokymo kalbos, jis turi daug galingų požymiai, kad jis tinka kaip kalba prototipų formalios specifikacijos. Ši knyga parodo, kaip ABC buvo naudojamas prototipas specifikacijų parašyta formali specifikacija kalba VDM. ACM SIGPLAN Pranešimai, Tomas 29, Numeris 1., Sausio 1994.

ABC GREITI

ABC Įgyvendinimas

Turimi failai:

abc-windows.zip
Įtrauktas .pif failus važiavimo abc apie Windows 98, Windows 2000 ir XP. Norint įdiegti jį, tiesiog išpakuokite ABC katalogą c:\Program Files\ABC, arba skaityti failą readme.txt ką daryti, jei norite, kad ji kažkur kitur. Norėdami pašalinti, tiesiog ištrinti katalogą, kuriame jūs išpakuoti jį.
abc.tar.gz
Debian/Ubuntu programas; turėtų dirbti bet kokį Debian išvestinių finansinių priemonių. (.deb file netrukus). Išpakuokite į katalogą ir paleisti tiesiai iš ten. Arba įdėti abc ir abc raktus į bet kokią direktoriją savo $PATH, ir abc.hlp ir abc.msg į ~/abc/ arba /usr/local/lib/abc/.
abcMAC.dmg
Mac; nukopijuoti failus į katalogą, ir paleisti iš ten.
abc-unix.tar.gz
Šaltiniai. Šie surinks pagal Unix/Linux, bet taip pat pagal Mac, ir su tinkama aplinka, pvz., Cygwin, pagal Windows.

 

Grįžti į pagrindinį

Leave a Reply

Your email address will not be published. Required fields are marked *