PERUS | |
---|---|
Kieliluokka | algoritminen, myöhemmin menettelyllinen , myöhemmin oliosuuntautunut |
Esiintyi | 1964 |
Tekijä | Thomas Kurtz , John Kemeny |
Kehittäjä | Kurtz, Thomas , Kemeny, John George ja Mary Kenneth Keller [d] [1] [2] |
Tiedostotunniste _ | .bas |
Tyyppijärjestelmä | löysä |
Vaikutettu | Algol 60 , Fortran II, JOSS |
vaikutti | COMAL , GRASS ja monet myöhemmät kielen murteet |
Mediatiedostot Wikimedia Commonsissa |
BASIC ( BASIC , lyhenne englannista. Beginner's All-purpose Symbolic Instruction Code - universaali koodi symbolisille ohjeille aloittelijoille [3] ) - korkean tason ohjelmointikielien perhe .
Sen kehittivät vuonna 1964 Dartmouth Collegen professorit Thomas Kurtz ja John Kemeny [4] .
Kieli luotiin työkaluksi, jolla ohjelmoimattomat opiskelijat voivat itsenäisesti luoda tietokoneohjelmia ongelmiensa ratkaisemiseksi. Siitä on tullut laajalle levinnyt eri murteiden muodossa, pääasiassa kotitietokoneiden kielenä . Tähän mennessä se on kokenut merkittäviä muutoksia, siirtyen pois ensimmäisille versioille ominaisesta yksinkertaisuudesta, rajoittuen primitivismiin ja muuttunut melko tavalliseksi korkean tason kieleksi, jolla on tyypillinen joukko ominaisuuksia. Sitä käytetään itsenäisenä kielenä sovellusohjelmien kehittämiseen, jotka toimivat pääasiassa Windows-käyttöjärjestelmän eri versioissa. Sitä käytetään myös laajasti sisäänrakennetun kielenä sovellusohjelmistojärjestelmissä eri tarkoituksiin ja ohjelmoitavien laskimien kielenä .
Edellytyksenä BASIC:n syntymiselle oli 1960-luvulla lisääntynyt tietokoneiden saatavuus ja aikajakotyön ( time - sharing ) synty . Opiskelijat ja asiantuntijat, jotka eivät ole koulutettuja ohjelmoijia, mutta joiden on ratkaistava ongelmansa tietokoneella, ovat saaneet pääsyn tietokoneisiin.
BASICin suunnittelivat vuonna 1964 Dartmouth Collegen professorit John Kemeny ja Thomas Kurtz , ja heidän ohjauksessaan toteutti joukko korkeakouluopiskelijoita. Ajan myötä, kun muita murteita alkoi ilmestyä, alkuperäinen toteutus tuli tunnetuksi nimellä Dartmouth BASIC .
BASIC on suunniteltu siten, että opiskelijat voivat helposti kirjoittaa ohjelmia aikajakopäätteillä. Se oli tarkoitettu "yksinkertaisemmille" käyttäjille, jotka eivät olleet kiinnostuneita ohjelman suoritusnopeudesta, vaan yksinkertaisesti kyvystä käyttää tietokonetta ongelmien ratkaisemiseen ilman erityiskoulutusta.
Kielen suunnittelussa käytettiin seuraavia kahdeksaa periaatetta. Uusi kieli oli:
Kieli perustui osittain Fortran II:een ja osittain Algol 60 :een lisäyksillä, jotka tekivät siitä sopivan aikajakoon ja myöhemmin tekstinkäsittelyyn ja matriisiaritmetiikkaan. BASIC toteutettiin alun perin GE-265- mainframessa useiden päätteiden tuella. Vastoin yleistä käsitystä se oli syntyessään käännetty kieli.
Vaikka kieli oli jo käytössä useissa minitietokoneissa, sen todellinen leviäminen alkoi Altair 8800 -mikrotietokoneen esittelystä . Monet ohjelmointikielet olivat liian suuria mahtuakseen pieneen muistiin, johon tällaisten koneiden käyttäjillä oli varaa. Laitteille, joissa on hidas media, kuten paperinauha (myöhemmin äänikasetti) ja joilla ei ole sopivaa tekstieditoria, pieni kieli, kuten BASIC, oli jumalan lahja.
Vuonna 1975 Microsoft (silloin se oli vain kaksi: Bill Gates ja Paul Allen - Monte Davidovin osallistuessa ) julkaisi Altair BASICin . Sen versiot ilmestyivät sitten toiselle alustalle lisenssillä, ja pian niitä oli käytössä miljoonia kopioita ja muunnelmia: yhdestä versiosta, Applesoft BASIC :sta, tuli Apple II :n vakiokieli . CP/M - käyttöjärjestelmää varten luotiin BASIC-80 murre , joka määritti kielen kehityksen pitkään.
Vuonna 1979 Microsoft keskusteli useiden tietokonevalmistajien (mukaan lukien IBM ) kanssa BASIC-tulkin lisensoimisesta heidän koneissaan. Yksi versio ( ROM BASIC ) sisällytettiin IBM PC ROM :iin: tietokone voi käynnistyä automaattisesti BASICiin. Koska IBM ei tuohon aikaan pitänyt henkilökohtaisia tietokoneita kovinkaan tärkeänä ( suurtietokoneet olivat sen päätoimiala ), periaatteidensa vastaisesti se salli Microsoftin myydä tulkin erikseen. Tämä teki jälkimmäisestä edelläkävijän uuden sukupolven ohjelmistojen julkaisussa - ei sidottu tiettyyn laitteistoon ja toimitetaan erikseen tietokoneesta.
BASIC koki vuosina 1970-1980 täysin sellaisen tunnetun ilmiön kuin korkean tason kielen toistensa kanssa pitkälti yhteensopimattomien versioiden ja murteiden massatoisto. Tähän oli useita syitä. Koska kieltä ei pidetty teollisena kielenä, sen standardoimiseksi ei tehty erityisiä ponnisteluja, vaan jokainen tietokone loi oman toteutuksensa. Samoihin vuosiin ilmestyi suuri määrä 8-bittisiä koti- ja opetustietokoneita, jotka perustuivat prosessoreihin, kuten Intel 8080 (neuvostoliiton analogi - KR580VM80A ) tai Z80 , joissa BASIC oli tärkein (tai ainoa saatavilla oleva) korkean tason tason kieltä. Jokaisessa tietokonemallissa oli tiettyjä laitteisto- ja ohjelmistoominaisuuksia, erityisiä äänen ja grafiikan toistomenetelmiä; epästandardit syöttötyökalut, joiden tueksi BASIC-toteutuksessa otettiin käyttöön erikoiskomentoja ja -rakenteita. Joskus matalan tason ohjelmointityökalut toteutettiin suoraan BASICissa, kuten työskentely suoraan fyysisen muistin kanssa tai laitteistokeskeytysten käsittely. Siksi, jos perusosassa (operaattoreiden vähimmäisstandardijoukko ja konsolin sarja I / O) useimmat toteutukset olivat pohjimmiltaan samanlaisia, niin äänen ulostulon, grafiikan ja monimutkaisemman tekstikonsolin ohjauksen (värienhallinta, eräänlaisen luominen) ikkuna I / O), ne ovat melkein varmasti yhteensopimattomia. Tämän seurauksena vain yleisimmät BASIC-versiot ja murteet olivat yli tusina, eikä usein yhteensopivien toteutusten kokonaismäärä ollut pienempi kuin käytössä olevien tietokoneiden tyyppien ja lajikkeiden lukumäärä.
Alkuperäisen BASICin suurimman vaurauden ja kehityksen ajanjaksoa voidaan pitää 1970-luvun lopulla - 1980-luvun ensimmäisellä puoliskolla. Tänä aikana lähes kaikissa henkilökohtaisissa tietokoneissa oli oma BASIC-tulkki, usein ROM-muistiin ommeltu, joka yksinkertaisimmissa tietokoneissa usein myös suoritti käyttöjärjestelmän toimintoja. Lähes kaikissa tehokkaammissa tietokoneissa oli myös interaktiiviset BASIC-järjestelmät. BASIC- kääntäjiä ei käytännössä ollut , valtaosa toteutuksista oli rivieditorin ja tulkin standardiyhdistelmää. Ajan myötä kielen perustyökalut paranivat, mikä johti monimutkaisten haaraoperaattoreiden, lisätyyppisten silmukoiden ja nimettyjen parametreilla varustettujen menettelyjen esiintymiseen joissakin toteutuksissa.
IBM PC -alustalle luotiin useita uusia BASIC-versioita. Microsoft myi BASIC:in MS-DOS :lle / PC DOS :lle , mukaan lukien IBM Advanced BASIC (BASICA), GW-BASIC (BASICAn muunnos, joka ei vaadi "laiteohjelmistoa" IBM:ltä) ja QuickBASIC . Borland , joka tuli markkinoille alun perin tunnetulla Turbo Pascal -ohjelmistollaan, julkaisi vuonna 1985 samaan ohjelmistoympäristöön perustuvan Turbo Basic 1.0 -järjestelmän (sen seuraajansa myi myöhemmin toinen yritys nimellä PowerBASIC ). Jotkut muut kielet käyttivät hyvin tunnettua BASIC-syntaksia perustana, jolle rakennettiin täysin erilainen järjestelmä (katso esimerkiksi GRASS ). Halu lisätä BASIC-ohjelmien suorituskykyä johti täysimittaisten kääntäjien (kuten edellä mainitun Turbo Basic) sekä "hybridi"-järjestelmien syntymiseen, joissa tulkinta säilytetään ohjelman pääasiallisena suoritustavana, mutta osittainen kääntäminen "lennossa" toteutettiin esimerkiksi lyhyiden syklien kokoaminen. Lisäksi ainakin IBM-alustalla on levinnyt BASIC-ohjelmien pseudokääntäminen, kun kääntäjä kääntää BASIC-ohjelman pseudokoodiksi (usein käännettäväksi) ja muodostaa suoritettavan ohjelman tulkin objektimoduulista ja koodatusta moduulista ohjelmatekstin kanssa. . Tällainen ohjelma toimisi ja toimisi kuten tavallinen käännetty objektiohjelma, vaikka se pysyikin olennaisesti tulkittuna.
1980-luvun puolivälissä BASICista tuli pääkieli ohjelmoitavien laskimien monimutkaisissa malleissa , jotka juuri tähän aikaan olivat saavuttaneet kyvyn mahdollistaa täysimittaisen korkean tason kielen käytön. Jo se tosiasia, että monet valmistajat valitsivat sanaakaan sanomatta BASICin laskemien korkean tason kielen perustaksi, kertoo parhaiten tämän kielen yleisyydestä ja suosiosta ilmoitettuna ajankohtana. Joten BASIC rakennettiin Neuvostoliiton elektroniikkalaskuriin MK-85 ja kaikkiin sen myöhempiin malleihin. BASICin käyttö ohjelmoitavien laskimien ensisijaisena korkean tason kielenä jatkuu tähän päivään asti; tällä hetkellä se on "laskin" BASIC, joka muistuttaa eniten 1960-80-luvun alkuperäistä versiota, esimerkiksi CITIZEN-laskimien toteutus sisältää vain 14 avainsanaa (laskematta matemaattisia funktioita) ja sallii vain yksimerkkiset muuttujien nimet. .
1980-luvun loppuun mennessä henkilökohtaisista tietokoneista tuli paljon tehokkaampia ja ne tarjosivat ominaisuuksia (kuten graafisen käyttöliittymän ), joita ei enää ollut yhtä kätevää käyttää BASICissa. Lisäksi "koulutus"- ja "koti"-luokan edullisien teollisten kielten kääntäjien (ensisijaisesti Pascal ja C) ilmestyminen tietokoneisiin yhdistettynä käteviin ohjelmointiympäristöihin ja hyödyllisiin kirjastoihin (esimerkiksi Borland Pascal Turbo Vision -kirjaston kanssa ) loi vahvan kilpailun BASICista. BASIC alkoi menettää jalansijaa huolimatta siitä, että valtava määrä sen versioita käytettiin ja myytiin edelleen. Samalla alkoi nopea muutos niiden käytössä jääneiden BASIC-järjestelmien ulkonäössä. Asteittain "ajautuminen" kohti tunnistettuja rakennekieliä: sanasto ja kielikonstruktiot laajenivat, ilmaantui monimutkaisia haaroja, nimettiin alirutiineja ja toimintoja, pitkiä muuttujien nimiä. Lisäksi henkilökohtaisten tietokoneiden lisääntyneet ominaisuudet mahdollistivat luopumisen BASICin ominaispiirteistä, jotka otettiin käyttöön tehokkaan interaktiivisen työskentelyn varmistamiseksi tekstipäätteellä: numeromerkit jokaiselle riville ja rivi riviltä muokkaaminen.
BASIC sai toisen elämän Microsoftin Visual Basicin myötä . Vaikka on vaikea olla samaa mieltä siitä, että tämä kieli on todella PERUSkieli; se oli looginen johtopäätös kielen kehitykselle, ja huolimatta tavanomaisten avainsanojen säilyttämisestä, se on rakenteeltaan ja ominaisuuksiltaan lähempänä Pascalia kuin alkuperäistä BASICia. Mutta työkaluna luoda nopeasti käytännöllisesti hyödyllisiä Windows-ohjelmia alhaisella ohjelmoijan pätevyydellä, se osoittautui erittäin hyödylliseksi ja siitä tuli nopeasti yksi Windows -alustan eniten käytetyistä kielistä . Ei viimeinen rooli tässä ollut järjestelmään sisältyvän graafisen käyttöliittymän rakentajan onnistuneella toteutuksella, joka piilotti Windows GUI -ohjelmoinnin yksityiskohdat kehittäjältä ja antoi heidän keskittyä tehtävään. Microsoft loi version nimeltä WordBasic ja käytti sitä MS Wordissa Word 97:n tuloon asti. Visual Basic for Applications (VBA) -versio rakennettiin Microsoft Excel 5.0:aan vuonna 1993 , sitten Access 95:een vuonna 1995 ja sen jälkeen kaikkiin muihin. Microsoft Office -ohjelmistoon sisältyvät työkalut . Internet Explorer 3.0 ja uudemmat sekä Microsoft Outlook sisälsivät VBScript -tulkin .
Kielen syntaksi muistuttaa Fortran -kieltä ja monet elementit ovat selkeitä lainauksia siitä. Kieli on suunniteltu oppimista varten, joten sen mallit ovat mahdollisimman yksinkertaisia. Kuten muissakin ohjelmointikielissä , avainsanat on otettu englannin kielestä. On olemassa kaksi perustietotyyppiä: merkkijonot ja numerot. Visual Basic -version ja sen erilaisten muutosten (kuten VBA ) myötä kieleen ilmestyi monia muita tietotyyppejä ja lisäyksiä, jotka ovat tyypillisiä nykyaikaisille ohjelmointikielille (kuten objektimalli). Muuttujien ilmoittaminen ei vaadi erityistä osaa (toisin kuin Pascalissa ). Muuttujan ilmoittaminen on sen ensimmäinen käyttökerta.
BASIC:n varhaiset versiot (kuten BASICA , GW-BASIC ) eroavat merkittävästi nykyaikaisista murteista, ja niitä ei juurikaan käytetä nykyään.
Ohjelmien ulkoasu BASICin varhaisissa versioissa määräytyi pitkälti siitä syystä, että se oli tarkoitettu ohjelmointiympäristöön, jossa on rivitekstieditori. Tällaisessa editorissa käyttäjä ei pystynyt näyttämään kaikkea tekstiä näytöllä (ikkunassa), liikkumaan sitä pitkin mihin tahansa suuntaan näppäimistön ja/tai hiiren avulla. Rivieditoreissa tekstiriviä muuttaakseen käyttäjän on annettava komento muuttaa riviä annetulla numerolla ja syötettävä sitten määritetyn rivin uusi teksti. Uuden rivin lisäämiseksi sinun on annettava insert-komento, joka osoittaa jälleen numeron. Syöttöjonot näytetään peräkkäin näytöllä (numeroista riippumatta). Tehtyjen muutosten näkemiseksi käytetään output text -komentoa, joka tulostaa rivit oikeassa järjestyksessä (nousevat numerot).
Kaikki tämä näkyy BASICissa. Jokainen rivi alkaa numerolla. Editoriin syötettynä rivi ilmestyi ohjelman lähdekoodiin sen numeroa vastaavaan kohtaan. Uuden rivin lisäämiseksi oli tarpeen lisätä rivi numerolla, joka oli kahden muun rivin numeroiden välissä. Rivejä oli mahdotonta "hajauttaa", jos oli tarpeen lisätä uusi rivi rivien väliin vierekkäisillä numeroilla, jouduit syöttämään nämä rivit uudelleen muilla numeroilla varmistaaksesi numerointikatkon (tai käyttämällä erityistä komentoa RENUM, joka numeroi uudelleen kaikki jo syötetyt rivit jatkuvalla askeleella, muuttaen synkronisesti kaikkia hyppykomentoja). Ohjelman online-muokkauksen yksinkertaistamiseksi on tullut käytäntö numeroida rivit askeleella 10 - tämä mahdollisti lähes kaikissa tapauksissa uusien rivien lisäämisen muuttamatta aiemmin syötettyjä numeroita. Jos esimerkiksi haluat lisätä kolmannen rivin rivien 20 ja 30 väliin, sinun on kirjoitettava rivi, jonka numero on välillä 21 ja 29. Tyypillinen rivi BASIC-ohjelmasta näytti tältä:
10 TULOSTUS "Hei, maailma!"Jo olemassa olevien linjojen numeroiden manuaalinen muuttaminen ei ollut turvallista, koska numerot toimivat käyttäjän nimikkeinä GOTO. Aikaisemmin BASIC salli vain numeeriset tunnisteet tälle operaattorille, ja yksilöllisen numeron läsnäolo kullakin rivillä mahdollisti ehdoitta siirtymisen mihin tahansa niistä. Numeeriset merkinnät ja runsas käyttö GOTOolivat väistämättömiä BASIC-ohjelmoinnissa, mikä vaikutti huonoon koodirakenteeseen ja johti suurissa projekteissa hämmennykseen itse tekijöissä. Jopa vitsitermi "pastaohjelmointi" ( spagettikoodi ) keksittiin, koska ohjelmalogiikka toistuvin siirtymineen GOTOmuistuttaa spagettilautasta.
Operaattorin pääte oli merkkijonon loppu. Jos haluat sijoittaa useita lauseita yhdelle riville, sinun on laitettava niiden väliin kaksoispiste (tämä ei ollut sallittu kaikissa kielen toteutuksissa). Useimmissa murteissa muuttujien nimet saattoivat koostua vain yhdestä kirjaimesta, jonka jälkeen voitiin lisätä yksi numero, mikä ei myöskään parantanut koodin ymmärtämistä. Merkkijonotyyppisen muuttujan luomiseksi sinun oli laitettava dollarimerkki ( $) nimen perään. Muuttuja ilman tätä merkkiä oli numeerinen (liukuluku) muuttuja. Numeeriseen tyyppiin liittyi useita lisää: prosenttimerkki ( %) - kokonaislukutyyppi, huutomerkki ( !) - normaali tarkkuus, oktotorppi ( #) - kaksinkertainen tarkkuus (liukulukutiedoille, eli desimaalimurtoluvuille ). Joissakin versioissa numeerisia määritteitä ei ehkä ole käytetty tai kaikkia niitä ei ole käytetty. Suurimmassa osassa ohjelmia käytettiin vain perusnumeerista tyyppiä.
Lausekkeet ovat samanlaisia kuin useimmat muut prosessiohjelmointikielet, mutta BASICin ensimmäisissä versioissa niiden joukko oli melko heikko. Varhaisemmissa versioissa avainsanojen määrä ei yltänyt edes 20:een. Tässä on joukko perusohjelmarakenteita ja interaktiivisia komentoja, jotka toteutettiin lähes kaikissa 1970-luvun lopun BASIC-järjestelmissä:
Ehdollisella operaattorilla ( IF..THEN) oli aluksi vain yksi haara - siinä ei ELSEollut haaraa ja se mallinnettiin käyttämällä ehdotonta siirtymää. Joten seuraavassa ohjelmassa suoritetaan perustoiminto - syötetään numero ja näytetään viesti "Negatiivinen luku" tai "Positiivinen luku tai nolla", riippuen sen arvosta:
10 INPUT I 20 JOS I >= 0 TULOSTA "Positiivinen luku tai nolla" : GOTO 40 30 TULOSTA " Negatiivinen luku" 40 LOPPULasketulla etiketillä oli siirtymäoperaattori ON..GOTO(peritty samankaltaisesta Fortran-rakenteesta) - PÄÄLLE-asetuksen jälkeen ilmoitettiin numeerinen lauseke ja sen jälkeen GOTO - luettelo rivinumeroista. Siirtyminen tapahtui riville, jonka numero luettelossa vastasi lausekkeen arvoa. On myös jaksoja (sykli laskurilla FORja sykli, jossa on ennakkoehto WHILE).
Käyttäjän määrittämien funktioiden (koodiosien, uudelleenkäytettävien) käyttö oli mahdollista kahdella tavalla: määritellyillä funktioilla ja aliohjelmilla.
Aliohjelmat eivät olleet analogisia kielten, kuten C tai Pascal , toimintojen kanssa, koska niillä ei ollut nimiä eivätkä ne voineet hyväksyä ja/tai palauttaa parametreja. Parametrit ja tulokset välitettiin globaalien muuttujien kautta (kaikki muuttujat BASIC:n varhaisissa versioissa olivat globaaleja). Aliohjelmat kirjoitettiin yleensä moduulin loppuun siten, että numerointi oli selvästi suurempi kuin suunniteltu rivimäärä (esim. aliohjelman lohkon numerointi voi alkaa 5000:sta, vaikka ohjelmassa olisi parisataa riviä). Aliohjelmilla ei ollut otsikoita tai nimiä, eivätkä ne eronneet muista koodinpätkistä. Aliohjelma kutsuttiin avainsanalla GOSUB <метка>. Tämä on käytännössä klooni GOTO, paitsi yhtä asiaa: paluu kutsupisteeseen tapahtui automaattisesti, kun avainsana saavutettiin aliohjelmassa RETURN. GOSUB, kuten GOTO, vaikutti vain huonoon koodirakenteeseen, koska suuren määrän ehdottomia hyppyjä ja aliohjelmia sisältävän ohjelman suoritusta oli vaikea seurata. Rekursio ei ollut sallittu.
Kyvyttömyys nimetä alirutiineja (ja siirtää niiden hallintaa), kyvyttömyys siirtää parametreja, paikallisten muuttujien puuttuminen, vain numeeristen nimikkeiden käyttö suurissa projekteissa aiheutti sekaannusta koodissa ja teki virheenkorjauksen erittäin vaikeaksi.
Joissakin BASIC-murteissa oli mahdollista ladata tiedosto koodilla suoraan ohjelman suorituksen aikana (nykyinen purettiin) operaattorin toimesta CHAIN. Tämä oli yksi kielen hyödyllisimmistä ominaisuuksista, koska sen avulla voit jakaa suuren projektin moduuleiksi kutsumalla niitä tarpeen mukaan.
Aiemmissa versioissa ei ollut koodieditoria sellaisenaan. Kun BASIC-tulkki käynnistettiin, käynnistettiin dialogitila komentojen syöttämiseksi. Tässä tilassa toimimiseen annettiin erityisiä komentoja, jotka eivät olleet itse kielen operaattoreita (niitä ei voitu sisällyttää ohjelmakoodiin). Nämä ovat komentoja syöttöympäristön hallintaan, kuten: LIST <диапазон строк> - ohjelmaluettelon näyttäminen näytöllä ( LLIST - tulostimelle), SAVE <имя файла> - ohjelman tekstin tallentaminen tiedostoon, LOAD <имя файла> - koodin lataaminen muistiin jne. Ohjelma käynnistettiin syöttämällä RUN-komennon. Useimmilla BASIC-tulkeilla oli rivi näiden (ja muiden) komentojen kanssa näytön alareunassa.
Jos komento alkoi rivinumerolla (etiketillä), se tallennettiin muistiin osana syöttöohjelmaa. Jos operaattorimerkkijono syötettiin ilman numeroa, se suoritettiin välittömästi näppäimen painamisen jälkeen ↵ Enter. Ensimmäisellä oppitunnilla BASICin opiskelijoita pyydettiin kokeilemaan tällaista moodia, kun lausekkeen suorituksen tulos oli heti näkyvissä. Jos esimerkiksi syötät merkkijonon dialogitilassa PRINT 2+2ja painat ↵ Enter, lisäyksen tulos näkyy näytöllä.
Jo syötetyn merkkijonon muokkaamiseksi useimmissa toteutuksissa se oli kirjoitettava kokonaan uudelleen. Rivit poistettiin komennolla DELETE <диапазон строк>. Komento RENUM - sallitaan rivinumeron vaiheen 10 palauttaminen. Usein oli tilanne, että tavallinen vaihe 10 ei riittänyt tuleville riveille (koska tällaisella askeleella voit lisätä vain 9 riviä vaadittujen rivien väliin) ja sitten komento RENUMoli tarpeen (kaikki rivit numeroitiin uudelleen askeleella 10, ja rivit mukautettiin vastaavasti GOTOuutta rivinumerointia varten) .
Ohjelman suorittamiseksi BASICissa tiedoston nimi ohjelmakoodin kanssa välitettiin tulkille komentorivillä. Tässä tapauksessa koodin lataamisen jälkeen RUN (aloita ohjelman suoritus) -komento kutsuttiin automaattisesti.
Katkelma tyypillisestä BASIC-ohjelmasta:
10 CLS 'Tyhjennä näyttö 20 TULOSTA "Tervetuloa!" 'Ensimmäisen rivin otsikko 30 'Silmukka, joka vetää viivan otsikon alla koko näytön leveyteen 40 FOR I = 1 - 80 50 PRINT "=" ; 60 SEURAAVA I 65 'Käyttäjän merkkisyöte (kommentti lisätty alarivien syöttämisen jälkeen) 70 INPUT "Etunimi:" , N$ 80 INPUT "Sukunimi:" , S$ 90 INPUT "Isännimi:" , T$ 95 ' Leikkaa kopio etunimen ensimmäisistä merkeistä 100 N2$ = LEFT$ ( N$ , 1 ) 110 T2$ = LEFT$ ( T$ , 1 ) 120 'Tulosta tulos 130 PRINT "Nimesi on lyhyt: " ; S$ ; "" ; N2$ ; "." ; T2$ ; "." 140 SYÖTÄ "Toista ohjelma? (K/E) " , U$ 150 JOS U$ = " K " SIIRRY 10 160 LOPPUPuolipisteen tehtävänä on vaimentaa rivinvaihto operaattorin jälkeen PRINT. Avainsana ENDtarkoittaa ohjelman lopettamista. Se on valinnainen, sen puuttuessa ohjelma päättyi viimeisen käskyn suorittamisen jälkeen, mutta siitä oli hyötyä tapauksissa, joissa oli aliohjelmien osa tai ohjelmalla oli useita mahdollisia päätepisteitä (jälkimmäisessä tapauksessa joko jokaisessa sellaisessa pisteen he asettivat ENDtai ENDsiellä oli yksi, ja siihen tehtiin kohtia muualla).
Yksi yleisimmistä BASIC-kielen muunnelmista oli Microsoft Corporationin QBasic -tulkin toteuttaminen . Useiden vuosien ajan se sisältyi ilmaisena sovelluksena MS-DOS:iin ja varhaisiin Windows -käyttöjärjestelmiin . Siinä oli melko tehokkaat graafiset ja ääniominaisuudet, joiden avulla voit luoda jopa pelejä tällä kielellä.
Myöhemmät BASIC-versiot (alkaen Turbo Basicista ja Visual Basicista ) eroavat suuresti aiemmista versioista. Itse asiassa se on uusi kieli, joka on monella tapaa lähempänä Fortrania tai Pascalia kuin alkuperäistä BASICia. Tärkeimmät muutokset 1990-luvun versioissa ovat seuraavat:
Lähes kaikki kielen varhaisiin versioihin liittyvät puutteet on korjattu, ja ohjelmointi nykyaikaisilla BASIC-murteilla poikkeaa vain vähän muiden kielten ja ympäristöjen käytöstä (kuten Delphi ). Basic-muokkausprosessin kääntöpuolena on, että kielestä on tullut paljon suurempi ja monimutkaisempi, ja sen kehittäminen vaatii enemmän aikaa ja vaivaa.
Fragmentti tyypillisestä FreeBASIC-ohjelmasta:
# Lang "fb" Dim As String n , s , t , n2 , t2 Cls : Tulosta "Tervetuloa!" 'Ensimmäisen rivin otsikko Tee silmukka, joka piirtää otsikon alapuolella olevan viivan koko näytön leveyteen For i As Integer = 1 To LowWord ( Width ) Tulosta "=" ; Seuraavaksi i 'Syötä merkin tiedot käyttäjältä Syötä "Etunimi:" , n Syötä "Sukunimi:" , s Syötä "Keskinimi:" , t 'Leikkaa kopio etunimen ja isänimen ensimmäisistä merkeistä n2 = Vasen ( n , 1 ) t2 = Vasen ( t , 1 ) 'Näytä tulos Tulosta "Nimesi on lyhyt:" ; s ; "" ; n2 ; "." ; t2 ; "." Tulosta "Toista ohjelma? (y/n)" Loop While LCase ( Input ( 1 )) = "y" End 0Suosiostaan huolimatta Microsoft luopui vuonna 2001 Visual Basicin lisätuesta ja siirtyi kokonaan uuteen Visual Basic .NET -kieleen - tässä toteutuksessa kieli uudistettiin jälleen perusteellisesti, ja nykyisessä tilassaan se on käytännössä sama kuin kielen joukossa. ominaisuuksia C # -kielellä , vain yksityiskohdat eroavat syntaksista ja avainsanoista. Tällä tavalla Basic on kehittynyt ei-ammattimaisille amatööreille tarkoitettujen ohjelmien luomistyökalusta täysimittaiseksi työkaluksi ohjelmien luomiseen.
Täysimittaisten ohjelmien kirjoittamisen lisäksi BASICia käytetään laajalti eri komentosarjakielien perustana (esimerkiksi Microsoft Office -paketin makrot kirjoitetaan VBA - murteella ).
Kunnon aikana (1970-1980) BASICia kritisoitiin voimakkaasti. Sen lisäksi, että BASIC totesi kielen ilmeiset puutteet, jotka liittyvät varhaisten versioiden syntaktiseen köyhyyteen ja monien tunnustettujen ja kätevien rakenteiden ja mekanismien puuttumiseen, sitä on kritisoitu siitä, että sen yksinkertaisuus ja rakenteettomuus kannustavat käyttämään ilkeitä kehityskäytäntöjä ja edistävät vaarallisten ohjelmointitottumusten kehittymistä, jotka voivat joskus olla sopivia pienten ohjelmien nopeaan luomiseen nykyisiin tarpeisiin, mutta voivat johtaa suurten projektien romahtamiseen.
Kaikkialla oleva BASIC-pohjainen ohjelmoinnin peruskoulutus on saanut ankarasti kritiikkiä. Yksi Edsger Dijkstran "käyntikorteista" oli lausunto:
Aiemmin BASIC:in opiskelleille on lähes mahdotonta opettaa hyvää ohjelmointia. Mahdollisina ohjelmoijana he ovat henkisesti raajarikkoja ilman toivoa toipumisesta [5] .
Alkuperäinen teksti (englanniksi)[ näytäpiilottaa]On käytännössä mahdotonta opettaa hyvää ohjelmointia opiskelijoille, jotka ovat aiemmin altistuneet BASIC:lle: potentiaalisina ohjelmoijana he ovat henkisesti silvottuja, niin että he eivät toivo elpymisestä.
Vastauksena kritiikkiin BASICin kannattajat huomauttavat, että kriitikot antavat kielen kielen negatiiviset puolet, jotka sen väärinkäytön pitäisi katsoa johtuvan. BASICin (jos tarkoitamme varhaisia murteita) haitat ilmenevät, kun sillä yritetään kehittää ammattimaisesti monimutkaisia ja suuria ohjelmia ja kun sitä käytetään ohjelmoijien opetuksen peruskielenä, mutta tätä kieltä ei ollut tarkoitettu mihinkään näistä sovelluksista; sen päätehtävänä oli antaa ei- ohjelmoija -opiskelijoille mahdollisuus kirjoittaa yksinkertaisimpia ohjelmia omiin tarpeisiinsa , jotta he eivät häiritsisi asiantuntijoita tähän työhön. Kieli sopii hyvin tähän tehtävään.
Jos puhumme moderneista murteista ja BASICin toteutuksista, ne ovat menneet niin kauas kielen alkuperäisestä muodosta, että kaikkea yllä olevaa tuskin voidaan pitää niihin liittyvänä. Nykyaikaiset BASICin murteet ovat melko jäsenneltyjä kieliä, ne ovat ominaisuuksiltaan verrattavissa kieliin, kuten C , Pascal jne.
Eri aikoina BASIC-tulkkeja tuottivat erilaiset organisaatiot, yritykset ja yritykset:
Neuvostoliitto:
Omena:
|
|
Sinclair :
|
|
|
Muuta:
|
|
BASIC -ohjelmointikielen murteet | |
---|---|
Klassikko |
|
siirtymäkauden |
|
menettelyllinen |
|
Esine |
|
mobiili |
|
Konsoli |
|
Ohjelmointikielet | |
---|---|
|