Šiuolaikiniame skaitmeniniame pasaulyje beveik bet kas gali lengvai sukurti mobiliąją programėlę ar rašyti programinę įrangą dėl „Java“, „JavaScript“, „Python“ ir kitų programavimo kalbų.
Bet taip buvo ne visada. Kadangi pagrindinė kompiuterių kalba yra dvejetainis kodas, ankstyvieji programuotojai naudojo perfokortas, kad nurodytų kompiuteriams, kokias užduotis atlikti. Kiekviena skylė reiškė vieną dvejetainį skaitmenį.
Tai pasikeitė 1952 m. naudojant A-0 kompiliatorių – specifikacijų seriją, kuri aukšto lygio kalbas, tokias kaip anglų, automatiškai paverčia mašininiu dvejetainiu kodu.
Kompiliatorių, dabar IEEE Milestone, sukūrė Grace Hopper, dirbusi vyresniąja matematike Eckert-Mauchly Computer Corp., kuri dabar yra Unisys dalis, Filadelfijoje.
„IEEE Fellow“ naujovė leido programuotojams greičiau ir lengviau parašyti kodą naudojant angliškas komandas. Tačiau jai svarbiausias rezultatas buvo jo įtaka šiuolaikinių programavimo kalbų kūrimui, todėl kodo rašymas tapo prieinamesnis visiems, teigiama Penn Engineering Today straipsnyje.
Gegužės 7 d. Filadelfijoje, Pensilvanijos universitete, A-0 kompiliatoriaus pašventinimas kaip IEEE etapas. Štai čia ir prasidėjo Eckert-Mauchly Computer Corp.
„Šiuo etapu švenčiamas pirmasis kompiuterių pritaikymo žingsnis automatizuoti varginančias jų pačių programavimo dalis“, – per įteikimo ceremoniją sakė elektros sistemų, inžinerijos ir kompiuterių mokslo profesorius André DeHonas.
Perfokortelių sistemos pašalinimas
Norėdami programuoti kompiuterį, ankstyvieji technikai surašė užduotis asamblėjos kalba – žmogui suprantamu būdu rašyti mašininį kodą, sudarytą iš dvejetainių skaičių. Tada jie rankiniu būdu išvertė surinkimo kalbą į mašininį kodą ir išmušė skylutes, vaizduojančias dvejetainius skaitmenis, į korteles. Vidutinisstraipsnis apie metodą. Kortelės buvo tiekiamos į aparatą, kuris nuskaito skyles ir įveda duomenis į kompiuterį.
Perfokortelių sistema buvo varginanti; užduočiai atlikti gali prireikti dienų. Kortelės negalėjo būti naudojamos net su nedideliu defektu, pavyzdžiui, sulenktu kampu. Metodas taip pat turėjo didelę žmogiškųjų klaidų riziką.
Penne vadovavę elektroninio skaitmeninio integratoriaus ir kompiuterio (ENIAC) kūrimui, kompiuterių mokslininkai J. Presper Eckert ir John W. Mauchly ėmėsi kurti perfokortelių pakaitalą. ENIAC buvo sukurtas siekiant pagerinti JAV artilerijos taiklumą Antrojo pasaulinio karo metais, tačiau abu vyrai norėjo sukurti kompiuterius komercinėms reikmėms, rašoma Pensilvanijos knygų centro straipsnyje.
Jų sukurta mašina buvo pirmasis žinomas didelio masto elektroninis kompiuteris Universal Automatic arba UNIVAC I. Hopper buvo jo kūrimo komanda.
UNIVAC I panaudojo 6103 vakuuminius vamzdžius ir užėmė 33 kvadratinių metrų patalpą. Mašina turėjo atminties bloką. Vietoj perfokortelių kompiuteris naudojo magnetinę juostą duomenims įvesti. Juostos, kuriose buvo galima laikyti garso, vaizdo ir rašytinius duomenis, buvo iki 457 metrų ilgio. Kitaip nei ankstesniuose kompiuteriuose, UNIVAC I turėjo klaviatūrą, kad operatorius galėtų įvesti komandas, rašoma Pensilvanijos knygų centro straipsnyje.
„Šis įvykis švenčia pirmąjį žingsnį, kai kompiuteriai naudojami automatizuoti varginančias jų pačių programavimo dalis. – André DeHonas
Technikai vis tiek turėjo rankiniu būdu įvesti instrukcijas į kompiuterį, tačiau norėdami paleisti bet kokią naują programą.
Šis daug laiko reikalaujantis procesas privedė prie klaidų, nes „programuotojai yra bjaurūs kopijuotojai“, – sakė Hopperis kalboje Kompiuterinių mašinų asociacijai. „Nuostabu, kiek kartų 4 pavirsdavo delta, kuri buvo mūsų erdvės simbolis, arba A. Net B pavirsdavo į 13“.
Remiantis Hidden Heroes straipsniu, Hopperis turėjo idėją supaprastinti programavimą: paprašykite kompiuterio išversti iš anglų kalbos į mašininį kodą.
Ją įkvėpė kompiuterių mokslininkės Betty Holberton rūšiavimo / sujungimo generatorius ir Mauchly trumpasis kodas. Holberton yra viena iš šešių moterų, užprogramavusių ENIAC apskaičiuoti artilerijos trajektorijas per kelias sekundes, ir ji dirbo kartu su Hopperiu UNIVAC I. Jos rūšiavimo / sujungimo programa, sukurta 1951 m. UNIVAC I, tvarkė didelius duomenų failus, saugomus magnetinėse juostose. . Remiantis Stanfordo pristatymu apie programavimo kalbas, Hopperis apibrėžė rūšiavimo / sujungimo programą kaip pirmąją virtualiosios atminties versiją, nes ji automatiškai naudojo perdangas, nenurodant programuotojo. 1940-aisiais sukurtas trumpasis kodas leido technikai rašyti programas naudojant trumpas angliškų žodžių sekas, tiesiogiai atitinkančias mašininio kodo instrukcijas. Tai panaikino atotrūkį tarp žmogaus skaitomo kodo ir mašininiu būdu vykdomų instrukcijų.
„Manau, kad pirmasis žingsnis mums pasakyti, kad iš tikrųjų galime naudoti kompiuterį programoms rašyti, buvo rūšiavimo / sujungimo generatorius“, – pristatyme sakė Hopperis. „Ir trumpasis kodas buvo pirmas žingsnis link kažko, kas programuotojui suteikė tikrą galią parašyti programą kalba, kuri nė kiek nepanaši į originalų mašininį kodą.
IEEE Fellow Grace Hopper įveda skambučių numerius į universalųjį automatinį (UNIVAC I), kuris leidžia kompiuteriui rasti tinkamas instrukcijas, kurias reikia atlikti. A-0 kompiliatorius verčia angliškas instrukcijas į mašininio skaitymo dvejetainį kodą.Kompiuterių istorijos muziejus
Lengvesnis, greitesnis ir tikslesnis programavimas
Hopperis, kuris manė, kad kompiuteriai turėtų kalbėti panašiomis kalbomis, o ne reikalauti, kad žmonės kalbėtų kompiuterių kalbomis, pradėjo galvoti, kaip leisti programuotojams iškviesti konkrečius kodus naudojant anglų kalbą. IT specialistas profilį.
Tačiau jai reikėjo dažnai naudojamų instrukcijų bibliotekos, kad kompiuteris galėtų remtis, ir sistemos, skirtos išversti anglų kalbą į mašininį kodą. Tokiu būdu kompiuteris galėtų suprasti, kokią užduotį reikia atlikti.
Tokios bibliotekos nebuvo, todėl Hopperis susikūrė savo. Į jį buvo įtrauktos juostos, kuriose buvo dažnai naudojamos užduočių instrukcijos, kurias ji vadino paprogramėmis. Kiekvienoje juostoje buvo saugoma viena paprogramė, kuriai buvo priskirtas trijų numerių šaukinys, kad UNIVAC I galėtų rasti reikiamą juostą. Remiantis Stanfordo pristatymu, skaičiai reiškė trijų atminties adresų rinkinius: vienas skirtas paprogramės atminties vietai, kitas – duomenų vietai atmintyje, o trečias – išvesties vietai.
„Viskas, ką turėjau padaryti, tai užsirašyti skambučių numerių rinkinį, leisti kompiuteriui juos rasti juostoje ir atlikti papildymus“, – sakė ji Skaičiavimo istorijos centro straipsnyje. „Tai buvo pirmasis kompiliatorius.”
Sistema buvo pavadinta A-0 kompiliatoriumi, nes kodas buvo parašytas viena kalba, kuri vėliau buvo „sukompiliuota“ į mašinų kalbą.
Tai, kas anksčiau užtruko mėnesį trunkančio rankinio kodavimo, dabar gali būti padaryta per penkias minutes, teigiama „Cockroach Labs“ straipsnyje.
Hopperis pristatė A-0 Eckert-Mauchly Computer vadovams. Tačiau, užuot susijaudinę, jie sakė netikintys, kad kompiuteris gali rašyti savo programas, teigiama straipsnyje.
„Turėjau veikiantį kompiliatorių ir niekas jo neliesdavo, nes man atsargiai sakė, kad kompiuteriai gali atlikti tik aritmetiką; jie negalėjo atlikti programų“, – sakė Hopperis. „Tai buvo pardavimo darbas, kad žmonės jį išbandytų. Manau, kad su bet kokia nauja idėja, nes žmonės alergiški pokyčiams, reikia išeiti ir parduoti idėją.
Prireikė dvejų metų, kol įmonės vadovybė priėmė A-0.
1954 m. Hopperis buvo paskirtas UNIVAC padalinio automatinio programavimo direktoriumi. Ji toliau sukūrė pirmąsias kompiliatoriumi pagrįstas programavimo kalbas, įskaitant Flow-Matic, pirmąjį anglų kalbos duomenų apdorojimo kompiliatorių. Jis buvo naudojamas UNIVAC I ir II mašinoms programuoti.
Hopperis taip pat dalyvavo kuriant COBOL, vieną iš pirmųjų standartizuotų kompiuterių kalbų. Tai leido kompiuteriams reaguoti į žodžius, be skaičių, ir jis vis dar naudojamas verslo, finansų ir administracinėse sistemose. „Hopper’s Flow-Matic“ sudarė COBOL pagrindą, kurio pirmosios specifikacijos buvo pateiktos 1959 m.
Dabar Pensilvanijos universitete yra lenta, atpažįstanti A-0. Jame rašoma:
1951–1952 m. Grace Hopper išrado „A-0 Compiler“ – specifikacijų seriją, kuri veikė kaip susiejimo priemonė/kroviklis. Tai buvo novatoriškas automatinio programavimo laimėjimas, taip pat novatoriška paprogramių valdymo programa. A-0 kompiliatorius turėjo įtakos aritmetinių ir verslo programavimo kalbų kūrimui. Dėl to COBOL (bendra į verslą orientuota kalba) tapo dominuojančia aukšto lygio kalba verslo programoms.
Nominaciją rėmė IEEE Filadelfijos skyrius.
„Milestone“ programa, kurią administruoja IEEE istorijos centras ir remia donorai, pripažįsta išskirtinius techninius pasiekimus visame pasaulyje.