Šta je BASIC programski jezik. Osnovni jezik. Glavne verzije Visual Basica

BASIC jezik (aka BASIC, aka BASIC) je dio porodice programskih jezika visoki nivo.

BASIC je skraćenica koja znači: B početnica A ll-name S ymbolic I uputstvo C oda- univerzalni kod simbolične upute za početnike).

BASIC programski jezik razvijen je 1964. godine. Ideja je bila da se stvori jezik kojim bi učenici koji nisu imali vještine programiranja mogli samostalno kreirati kako bi riješili svoje probleme.

Ovo je vrlo korisno za zajednički rad drugih programa i naziva se "ljepljiva traka Interneta". Kao autor steka, programer je koristio različite alate za kreiranje sopstvenih stekova povezanih kao neka vrsta prezentacije. Bio je to simbolički matematički programski jezik koji se koristio u matematičkim, naučnim, akademskim i inženjerskim poljima. Zatim je korišten za uređivanje slike na sceni "pseudopod" u filmu The Abyss. Gotovo odmah, entuzijasti su počeli da ga razvijaju i poboljšavaju, kao što je dodavanje podrške za periferne uređaje i poboljšanje njegove stabilnosti.

Ovaj jezik je svojevremeno bio veoma popularan i proširio se u svetu kompjutera u obliku raznih dijalekata, uglavnom kao jezik za kućne računare.

Od svog nastanka, BASIC je u više navrata usavršavan i komplikovan, poštujući zakone modernog programiranja. Iz tog razloga, do sada je već izgubio (u poređenju sa prvim verzijama) svoju jednostavnost. Iako, čak i imajući ovo na umu, savremeni Basic i dalje ostaje relativno jednostavan jezik, u poređenju sa jezicima kao što je, na primer, .

Njegov izumitelj, softverski inženjer Phil Zimmermann, stvorio ga je kao alat za zaštitu ljudi od nametljivih vlada, preduzeća i institucija širom svijeta. Široko se koristio preko Interneta i na strani klijenta i na strani servera. Ideja vizuelnog programiranja je omogućiti programerima da se razvijaju softver koristeći inline vizuale umjesto teksta. Problem je bio vezan za činjenicu da su u većini ranije pisanih programa datumske marke koristile samo dvije cifre za predstavljanje informacija o godini.

Počevši od 1960-ih, računari su postajali sve pristupačniji. Na kompjuterima nisu mogli da rade samo naučnici-programeri, već i školarci i studenti koji nisu bili programeri. Međutim, ovi školarci i studenti su već imali probleme koje su morali rješavati uz pomoć kompjutera.

Gotovo da nije bilo gotovih programa tada. Stoga je za svaki zadatak morao biti kreiran poseban program. I bilo je vrlo teško to učiniti na kompjuterima tih godina, koristeći tada dostupne programske jezike (djelomično je to razlog zašto su se programski jezici stvarali za rješavanje specifične zadatke, na primer, PROLOG je bio fokusiran na kreiranje sistema sa veštačkom inteligencijom, FORTRAN - za rad sa matematičkim formulama u naučnim i inženjerskim proračunima itd.).

Postoji li još jedan jezik koji može tvrditi da je učinio više da promijeni način na koji se računari koriste? Možda vam se ne sviđa, ali to je bio jezik koji je donio računarstvo u mase. Postoje čak i neki, uključujući prave pronalazače, koji kažu da je on bio čovjek koji je zabrljao jezik.

Jasno je da napori da studira engleski jezik nisu bili dovoljni da naškode ostalim studijama, jer je otišao na Prinston da studira matematiku. Ispostavilo se da je bilo bogatije nego što možete zamisliti, jer je u prvoj godini bio pozvan u projekt u Los Alamosu da pomogne projektu atomske bombe s Richardom Fenimanom kao njegovim šefom.

Stoga ne čudi da je neko došao na ideju da napravi što jednostavniji programski jezik, kako bi ljudi koji su potpuno neupućeni u programiranje mogli kreirati barem jednostavni programi za rješavanje nekih problema na računarima (ova ideja je provedena u praksi, iako su kasniji kritičari krivili BASIC za ove karakteristike).

Postavljanje cilja lekcije

Trebale su sedmice da se riješi čak i jednostavan numerički problem. Ljudi su pitali: Znate li da je fizička fizika dovoljna za Ajnštajna? Moja standardna rečenica: Ajnštajnu nije bila potrebna pomoć sa fizikom. Bio je vrlo dobar u tome, ali nije bio moderan matematičar na istraživačkom nivou. Njegovi asistenti su bili matematičari iz dva razloga. Prije svega, u jednostavnim proračunima svi griješe. Bilo je mnogo dugih proračuna, izvođenja jedne formule iz druge za rješavanje diferencijalne jednadžbe.

Koliko puta smo dobili pogrešan odgovor. Nekad je jedan od nas dobio pogrešan odgovor, a nekad drugi. Proračuni su bili dovoljno dugi da ako dobijete isti odgovor na kraju, bili ste sigurni. Kemeny je proveo mnogo sati provjeravajući Ajnštajnove proračune i rekao.

Kao rezultat toga, 1964. profesori Dartmouth Collegea John Kemeny i Thomas Kurtz izmislili su osnovni jezik, a pod njihovim vodstvom implementirao ga je tim studenata. Vremenom, kako su se drugi dijalekti počeli pojavljivati, originalna implementacija postala je poznata kao Dartmouth BASIC.

BASIC je zamišljen i napravljen tako da studenti mogu relativno lako kreirati svoje programe. Basic je bio namijenjen korisnicima kojima brzina izvođenja programa nije bila previše bitna, a kojima je bilo mnogo važnije da mogu koristiti računar za rješavanje svojih problema, u principu, bez posebne obuke (podsjećam da je bilo tada gotovo da nema gotovih programa).

QBASIC programsko okruženje

"Ako smo oboje dobili isti odgovor, onda su bile ogromne šanse da je to tačno." Čak i ovdje bi kompjuteri bili korisni, ali kao što je Ajnštajn rekao Džoniju Von Nojmanu, potrebna mu je još jedna mašina koja može da manipuliše simbolima. Ne samo da je Kemeny shvatio kakva će biti njegova budućnost.

Doktorat matematike sa 23 godine i redovni profesor sa 27 na Dartmouth koledžu daje vam ideju o tome koliko se brzo Kemenijeva karijera kretala. Ali, umjesto čistog istraživanja, njegova interesovanja su bila usmjerena na učenje i učenje posebno.

U razvoju osnovnog jezika korišteno je sljedećih osam principa:

  1. Jezik bi trebao biti lak za korištenje i razumljiv za početnike.
  2. Mora biti programski jezik opće namjene(a ne poseban, kao, na primjer, Fortran i Prolog spomenuti gore).
  3. Jezik bi trebao pružiti proširivu funkcionalnost dostupnu iskusnim programerima.
  4. Jezik mora biti interaktivan, odnosno mora izvršavati korisničke naredbe.
  5. Jezik treba da pruži nedvosmislene i razumljive poruke o grešci.
  6. Jezik bi trebao raditi brzo na malim programima.
  7. Jezik ne bi trebalo da bude vezan za hardver i ne bi trebalo da zahteva od programera da razume kako hardver radi.
  8. Jezik treba da štiti korisnika od operativnog sistema (ili operativni sistem od korisnika - kako želite))).

Prilikom kreiranja Basica, dijelom je uzet Fortran II, a dijelom Algol 60. U početku je Basic implementiran na GE-265 mainframe uz podršku za mnoge terminale (mainframe je veliki server visokih performansi, otporan na greške).

Tražeći platu za rad u Dartmouthu, pitao je Kemenyja da li postoji način da poveća svoj prihod. Bilo je očigledno da nam treba novi jezik, i nisu gubili vrijeme pokušavajući to smisliti. Nedavno je kompjutersko kodiranje postalo posebno hip-hop. Ljudi koji ne znaju da kodiraju, a oni koji to rade profesionalno, jesu. A to je bilo prije 50 godina, danas su dva profesora iz Dartmoutha predstavila jezik kodiranja koji je bio dovoljno jednostavan da ga bilo tko može koristiti.

Prva generacija mejnfrejm računara bila je u suštini programirana jer su sastavljena kao slagalica sa beskrajnim rešenjima. Morali ste znati kako spojiti dijelove da biste dobili željeni rezultat. Prilično logično, čak i ako nikada prije niste stavili prste na tastaturu.

Uprkos činjenici da se jezik već koristio na nekoliko mini računara, njegova prava distribucija počela je uvođenjem na mikroračunaru Altair 8800.


Mnogi programski jezici bili su previše glomazni da bi stali u malu količinu memorije koju su korisnici takvih računara mogli priuštiti. Za mašine sa sporim medijima za skladištenje kao što je papirna traka (kasnije kaseta traka) i bez odgovarajućeg uređivača teksta, mali jezik kao što je BASIC bio je najbolje rešenje.

Ranije, svaki put kada je korisnik pokrenuo program na računaru, mašina je morala da prevodi program jedan po jedan. Ubrzo nakon toga, omogućili su besplatan pristup široj kompjuterskoj zajednici. Rekli ste kompjuteru da uradi nešto tako što je ukucao reči i matematičke iskaze i on je to odmah uradio.

Ugrađene matematičke funkcije

Danas očekujemo da kompjuteri - i telefoni i tableti i niz drugih pametnih uređaja - odgovore na naša uputstva i zahtjeve što je brže moguće. Na mnogo načina, ova era trenutnog zadovoljstva započela je onim što su Kemeny i Kurtz stvorili.

Godine 1975. Microsoft (tada su bila samo dva - i Paul Allen, uz učešće Monte Davidova) izdaje Altair BASIC. Zatim su se njegove verzije pojavile na drugoj platformi pod licencom i ubrzo su bili u upotrebi milioni primjeraka i razne opcije. Jedna varijanta, Applesoft BASIC, postala je standardni jezik za . BASIC-80 dijalekt je kreiran za CP/M operativni sistem i bio je mnogo ispred svog vremena.

Ali kako odlučuju koji jezik da traže? A onda svi mi. Verovatno ćemo naći nešto slično. Nekoliko pitanja se postavlja toliko često da dobiju kompletan infografski tretman. Odlučivanje o svom prvom programskom jeziku može biti zabavan proces - poput onih "koji je od vas Quentin Tarantino"? Kviz ličnosti.

Trebat će vam stotine sati vježbe da postanete čak i izbliza kompetentni sa svojim prvim programskim jezikom. Stoga morate uzeti u obzir sljedeće faktore. Tržište rada kako bi razgovarali o dugoročnim izgledima za jezik, jednostavan jezik da biste naučili koje projekte možete izgraditi dok učite. Svaka godina donosi nove programske jezike, a sa njima i nove naučne članke.


Inače, Bill Gates je rekao da mu je Basic omiljeni programski jezik.

Basic se najbrže i najuspješnije razvijao tokom 1970-ih i ranih 1980-ih. U ovom trenutku skoro sve personalni računari imali svoj BASIC interpreter, često ušiven direktno u ROM. U najjednostavnijim računarima čak je obavljao i funkcije operativnog sistema.

Pogledajte ovaj dragulj za prošli mjesec. Kada je u pitanju odabir vašeg prvog programskog jezika, opcija ne nedostaje. Ali ispod njega se krije Little Engine koji je mogao polako osvajati popularnost u posljednjih nekoliko godina.

Prije nego što počnemo govoriti o ovim programskim jezicima, dozvolite mi da pojasnim. Pogledajmo kako se trenutno programiranje uči u školama. Univerziteti tradicionalno podučavaju programiranje pod okriljem računarskih nauka, što se samo po sebi često smatra proširenjem matematike ili vezom sa diplomom elektrotehnike.

Gotovo sve više moćnih računara takođe je imao interaktivne BASIC sisteme. Stvoreno je nekoliko novih verzija BASIC-a za IBM PC i kompatibilne platforme. Microsoft je prodao BASIC za MS-DOS/PC DOS, uključujući BASICA, GW-BASIC (modifikacija BASICA koja ne zahtijeva "firmware" od IBM-a) i QuickBASIC.

Borland, koji je postao nadaleko poznat zahvaljujući (sa kojim je prvi put izašao na tržište) 1985. godine objavio je Turbo Basic 1.0 sistem baziran na istom softverskom okruženju (njegove naslednike je kasnije prodala druga kompanija pod imenom PowerBASIC).

Naravno, kao što ste verovatno već čuli. Većina ovih lidera izgleda gotovo identično kao prije 10 godina. Da biste išli dalje od osnova, morate biti dobri u svom maternjem jeziku. Tada će vam drugi jezik biti mnogo lakši. Odatle se možete razgranati i postati promišljeniji programer dok učite mnoge jezike.

  • Ovo je odlično za razvoj igara.
  • Java je važna ako želite da radite na tehnologijama velikih kompanija.
Ispod su rezultati najsveobuhvatnijih nedavnih testova na različitim jezicima. Takve greške se stalno dešavaju u dinamički kucanim jezicima. Većina programera samo postavlja provjere da ih spriječi i u skladu s tim piše testove.

Do kraja 1980-ih, personalni računari su postali mnogo moćniji i pružili su nove karakteristike (kao što je grafički korisnički interfejs). Korištenje ovih novih funkcija u BASIC-u više nije bilo tako jednostavno i nije tako zgodno. Osim toga, pojavili su se jeftini kompajleri za naprednije jezike (kao što su Pascal i C), koji su, osim toga, imali fensi i dodatne biblioteke sa gotovim (na primjer, Borland Pascal sa bibliotekom Turbo Vision).

Uvod u osnovni programski jezik

Osim toga, vrijedno je napomenuti da bolji dani razvoj mobilne aplikacije možda iza toga stoji. Prvo, koliko god ljudi koriste mobilne aplikacije, gotovo polovina svih poslova programera je razvoj weba. Uporedite to sa 8% poslova razvoja mobilnih aplikacija.

Sjajna vizija "za to postoji aplikacija" nije se ostvarila. Umjesto toga, većina vlasnika pametnih telefona prestala je preuzimati nove aplikacije. Stoga je većina potražnje za programerima mobilnih aplikacija koncentrirana kod nekoliko velikih poslodavaca.

BASIC je počeo gubiti popularnost, iako se veliki broj njegovih verzija još uvijek koristio i prodavao. Istovremeno, postepena tranzicija Basic ka priznatom strukturalni jezici: proširen je vokabular i skup jezičkih konstrukcija, pojavile su se složene grane, imenovane potprograme i funkcije, duga imena varijabli.

Teško je predvidjeti izglede za razvoj mobilnih poslova. Sve se dotiče ove velike platforme koja je "mreža". I sljedeći val uređaja s kojima ćete razgovarati po svojoj kući, i automobili koje vaša djeca pokupe iz škole, također će biti povezani putem interneta.

Bez sumnje ćete čuti kako se ljudi šale na njegov račun. Pa, ljudi vole i da mrze na C. Programeri su danas veoma traženi - njihovo tečno poznavanje jezika kodiranja je neprocenjivo. Poznavanje različitih programskih jezika nije problem za inženjere, ali osnovno razumijevanje jezika može biti od koristi svakome, čak i ako ne želite da postanete majstor kodiranja. Razumijevanje nekog općeg razumijevanja kodiranja može vam pomoći pravi izbor Za vaše poslovne potrebe, bolje je komunicirati sa inženjerima u svom timu i spriječiti sve neugodne nesporazume.

Karakteristike BASIC jezika

Rane verzije BASIC-a (kao što su BASICA, GW-BASIC) se veoma razlikuju od modernih dijalekata i danas se gotovo ne koriste. Štaviše, toliko se razlikuju da programer početnik neće moći prevesti svaki program iz starog Basica u moderni Basic.

Struktura programa u ranim verzijama BASIC-a u velikoj mjeri je formirana uzimajući u obzir činjenicu da je bio namijenjen programskom okruženju s uređivačem teksta. U takvom uređivaču korisnik nije mogao da prikaže sav tekst na ekranu (u prozoru), nije mogao da se kreće njime u bilo kom pravcu pomoću tastature i/ili miša. U uređivačima redaka, da bi promijenio red teksta, korisnik mora dati naredbu za promjenu reda sa datim brojem, a zatim unijeti novi tekst navedenog reda (postojao je život za programere))).

Također, s visokim plaćama za kodiranje, možda biste željeli razmišljati o tome u svojoj budućoj karijeri! Evo 10 od njih popularni jezici programiranje. Često je to prvi programski jezik koji se predaje na fakultetu. Takođe je bilo nisko da se nalazi blizu opreme, ali ne tako nisko. nizak nivo da ste sve morali da radite ručno. Bilo je lijepo naučiti kako pisati jezgro nazad na fakultet i dobićete jasniju ideju o tome kako noviji jezici rade ispod pokrivača, ali rijetko je da većina programera aplikacija ovo koristi danas.


Da biste umetnuli novi red, morate dati naredbu za umetanje, opet navodeći broj. Ulazni nizovi se prikazuju uzastopno na ekranu (bez obzira na brojeve). Da biste vidjeli izvršene promjene, koristi se naredba za izlaz teksta, koja ispisuje redove ispravnim redoslijedom (uzlaznim brojevima).

Evo ga - jezici kralja kodiranja. Koji je vaš programski jezik i zašto? Ako ste početnik koji želi zaroniti u kodiranje, pogledajte ovo, začas ćete postati majstor koda. Postala je jedna od najpopularnijih baza podataka na svijetu.

Automatski mjenjač za otkrivanje senzora pritiska u gumama za lokacije i postavke retrovizora. instrument tabla protiv blokiranja kočnica kontrola stabilnosti tempomat kontrola klime brave za decu bez ključa kontrola grejanog vazdušnog jastuka sedišta. Dođete do prodavnice, parkirate auto i odete do automata po sok. Koji jezik su koristili za programiranje ovog automata? Onda kupite nešto u radnji.

Stoga je u starom BASIC-u svaki red počinjao brojem. Kada se unese u editor, red je završio originalni tekst program na poziciji koja odgovara njegovom broju. Da biste umetnuli novi red, bilo je potrebno dodati red sa brojem koji je bio u rasponu između brojeva druga dva reda.

Bilo je nemoguće „razmaknuti“ redove ako je bilo potrebno ubaciti novi red između redova sa susjednim brojevima, morali ste ponovo unijeti ove redove sa drugim brojevima da biste osigurali prekid u numeraciji (ili koristiti posebnu naredbu RENUM, koji je konstantnim korakom mijenjao brojeve svih već unesenih redova) .

Kao što razumijete, prilikom kreiranja manje ili više složenog programa, gotovo je nemoguće predvidjeti koliko će linija biti u njemu i kojim će redoslijedom slijediti.

Stoga, kako bi se osiguralo naknadno uređivanje programa, postalo je uobičajeno numerirati redove u koracima od 10 (a ponekad i više). Ovo je u većini slučajeva omogućilo umetanje novih redova bez problema bez promjene brojeva redova koji su ranije uneseni.

Jedan primjer ćemo razmotriti malo kasnije, kada se upoznamo sa sintaksom BASIC jezika.

OSNOVNA sintaksa jezika

Terminator je kraj niza. Da biste postavili nekoliko naredbi u jedan red, trebate staviti dvotočku između njih (ovo nije bilo dozvoljeno u svim implementacijama jezika).

Najjednostavniji program na BASIC-u:

10 PRINT “Zdravo, SVIJETE!”

Basic je jezik koji ne razlikuje velika i mala slova. To jest, za BASIC, riječi PRINT i print su jedno te isto. Ovo se ne odnosi samo na ključne riječi, već i na imena varijabli. Iako su neke implementacije jezika u potpunosti ili djelimično osjetljive na velika i mala slova (npr. Liberty BASIC).

Imena varijabli moraju početi slovom i mogu se sastojati od latiničnih slova i brojeva. Da biste kreirali varijablu tipa string, morali ste staviti znak dolara ($) iza imena.

Na primjer:

X = 100 'Numerička varijabla X$ = "Zdravo" 'String varijabla

Izrazi su slični izrazima u većini drugih proceduralnih programskih jezika, ali u prvim verzijama BASIC-a bilo ih je dosta. U najranijim verzijama, broj ključnih riječi je bio manji od 20 (ovo je ljepota Basica))).

Ne morate deklarirati jednostavne varijable. Samo napišemo ime varijable bilo gdje u programu i to je to. Istina, nizovi moraju biti deklarisani.

Slijede najosnovnije jezičke konstrukcije koje su implementirane u gotovo svaki BASIC sistem kasnih 1970-ih (mnoge od ovih konstrukcija su također podržane od strane modernih implementacija Basic jezika):

LIST
Izlaz na monitor teksta programa u ispravnom nizu redova.

RUN
Pokreni trenutni program od prvog izraza reda s najmanjim brojem.

REM
Komentar. Tekst iza ključne riječi i do kraja reda je komentar. Mnogi tumači također podržavaju jednostruki navodnik " kao početak komentara. Neki tumači dozvoljavaju riječ REM samo ako se nalazi na samom početku reda.

INPUT
Prikazuje tekst upita na monitoru i čeka da korisnik unese vrijednost i pritisne ENTER.

PRINT
Prikazuje podatke na monitoru (tekst i varijabilne vrijednosti).

CLS
Briše ekran.

DIM
Opis niza. Za razliku od normalnih varijabli, nizovi zahtijevaju deklaraciju unaprijed.

GOTO Label
Naredba bezuvjetnog prijelaza na oznaku.

AKO ONDA …
Operater obične filijale. Nakon postavljanja IF boolean uslov, nakon THEN je naredba koju treba izvršiti ako je ovaj uvjet istinit.

KRAJ
Završetak izvođenja programa. Sistem ulazi u interpreter i od korisnika se traži da unese komande.

SAVE
Komanda interaktivnog načina koja sprema trenutni program u datoteku na vanjskom mediju.

LOAD
Komanda interaktivnog načina rada koja učitava program u memoriju iz datoteke na vanjskom mediju. Ovo obično uklanja prethodno učitani program i podatke iz memorije.

Primjer programa na BASIC-u:

10 CLS "Obriši ekran 20 PRINT "Hello WORLD!!!" 30 X = 100 "Dodeli 100 do X 40 INPUT "Unesite broj: "; Y 50 PRINT Y; "*"; x; "="; X * Y 60 KRAJ

Osnovni prevodioci

Jedan od najpoznatijih Basic tumača je Microsoftov QBasic. Dugi niz godina je dolazio besplatno operativni sistemi MS-DOS i Windows. QBasic je imao dobre grafičke i zvučne mogućnosti za ta vremena. Stoga su čak i igrice kreirane na QBasicu (moj prijatelj je ovo uradio - ne kao na slici, već tako nešto))).


BASIC kasnijih verzija (počevši od Turbo Basica i Visual Basica) se veoma razlikuje od ranijih implementacija. Zapravo, ovo je novi jezik koji je već sličniji Fortranu ili Pascalu nego originalnom BASIC-u (iako su podržane mnoge konstrukcije).

BASIC je dobio drugi život sa pojavom Microsoftovog Visual Basica. Ali, uprkos svojoj popularnosti, 2001. Microsoft je napustio dalju podršku za Visual Basic (ako se ne varam, najnoviju verziju Visual Basic je bio 6.5) u korist fundamentalno novog Visual Basic .NET jezika, gdje je jezik ponovo „precrtan“ i „promijenjen“, fokusiran na cross-platformsku .NET tehnologiju, iu svom trenutnom stanju se praktično poklapa u smislu skup funkcija sa C# jezikom. Razlike su samo u sintaksi i ključnim riječima.

Tako je Basic evoluirao od alata za kreiranje programa od strane amatera-neprofesionalaca do punopravnog alata za kreiranje programa.

Pored pisanja punopravnih programa, BASIC se široko koristi kao osnova za različite skriptne jezike (na primjer, makroi u paketu Microsoft Office napisani su na VBA dijalektu, VBScript skriptni jezik se koristi u SCADA sistemima i drugim slični programi).

Koliko ljudi, toliko mišljenja

Čak iu njihovom bolja vremena(1970...1980 godina) BASIC je bio žestoko kritikovan (međutim, kao i skoro svi drugi programski jezici, mi volimo da kritikujemo).

Naravno, Bašić je imao mnogo nedostataka. Ali takav je trebao biti! Da, sa nedostacima. Ali s druge strane, jednostavan je i razumljiv čak i za humanističke nauke.

Uglavnom, profesionalni programeri su Basic razbili u paramparčad jer njegova jednostavnost i nedostatak strukturiranja dovode do toga da programeri početnici, u potrazi za smanjenjem vremena za kreiranje programa, potpuno zaborave na “ispravan” pristup programiranju. Ovo je prihvatljivo pri pisanju jednostavnih programa, ali gotovo uvijek dovodi do neuspjeha kada se radi na ozbiljnim velikim projektima.

Mnogi profesionalci su se također snažno protivili korištenju Basica za podučavanje početnika. Edsger Dijkstra, poznati autoritet u svijetu programera, rekao je da je gotovo nemoguće da studenti koji su prethodno studirali BASIC predaju dobro programiranje. I da su, kao budući programeri, mentalno osakaćeni bez nade u oporavak.

Uprkos Dijkstrinom autoritetu, ne slažem se s njim u ovome. Ono što se pripisuje nedostacima Basica, zapravo su njegove vrline. Nedostaci BASIC-a (ako mislimo na rane dijalekte) se pojavljuju kada se na njemu pokušavaju profesionalno razviti složeni i veliki programi i kada se koristi kao osnovni jezik za podučavanje programera, ali ne ni za jednu od ovih aplikacija. dati jezik nije bilo namijenjeno. Njegov glavni zadatak bio je pružiti studentima koji nisu programeri priliku, nakon minimalne obuke, da napišu najjednostavnije programe za svoje potrebe, kako ne bi ometali stručnjake za ovaj posao. Jezik prilično uspješno rješava ovaj problem.

Ako govorimo o modernim dijalektima i implementacijama BASIC-a, onda su oni otišli toliko daleko od izvornog oblika jezika da se sve navedeno teško može smatrati povezanim s njima. Moderni dijalekti BASIC-a su prilično strukturirani jezici, uporedivi su po mogućnostima sa jezicima kao što su C, Pascal, itd.

Osnovni jezik (čak i njegove prve implementacije, kao što je QBasic) je sasvim pogodan za učenje, jer s moje tačke gledišta nema apsolutno nikakvih problema, ako je potrebno, kasnije naučiti neki drugi jezik. Možda je 60-ih godina prošlog veka to bio problem - ne znam (rođen sam 1969. godine). Ali sada - ne.

Osim toga, danas ne morate ni da se prekvalificirate, jer možete kreirati svoj vlastiti cool programi, na primjer, u Visual Basicu.

BASIC(od BASIC, skraćenica za engleski. Višenamjenski simbolički kod za početnike - univerzalni kod za simboličke instrukcije za početnike) - porodica programskih jezika visokog nivoa.

Jezik je stvoren kao alat pomoću kojeg studenti koji ne programiraju mogu kreirati svoje kompjuterski programi da rešavaju sopstvene probleme. Postalo je rasprostranjeno u obliku raznih dijalekata, prvenstveno kao jezik za kućne računare. Do danas je doživio značajne promjene, značajno se udaljivši od jednostavnosti karakteristične za prve verzije, graniči s primitivizmom i pretvorivši se u prilično običan jezik visokog nivoa s tipičnim skupom karakteristika. Koristi se kao nezavisan jezik za razvoj aplikativnih programa, uglavnom koji rade pod Windows operativnim sistemom različitih verzija. Takođe se široko koristi kao ugrađeni jezik za aplikativne softverske sisteme za različite namene i kao jezik za programabilne kalkulatore.

Enciklopedijski YouTube

  • 1 / 5

    Preduslov za nastanak BASIC-a bila je povećana dostupnost računara 1960-ih i pojava mogućnosti rada u režimu dijeljenja vremena ( dijeljenje vremena). Pristup računarima su dobili studenti i specijalisti koji nisu obučeni programeri, ali koji svoje probleme rješavaju na računaru.

    Rođenje

    Rast

    Uprkos činjenici da se jezik već koristio na nekoliko mini računara, njegova prava distribucija započela je pojavom na mikroračunaru Altair 8800. Mnogi programski jezici su bili preveliki da bi stali u malu memoriju koju su korisnici takvih mašina mogli priuštiti. Za mašine sa sporim medijima kao što je papirna traka (kasnije audio kaseta) i bez odgovarajućeg uređivača teksta, mali jezik kao što je BASIC bio je dar od Boga.

    Opis

    Sintaksa jezika liči na Fortran i mnogi elementi su eksplicitne pozajmice iz njega. Jezik je zamišljen za učenje, tako da su njegovi dizajni što jednostavniji. Kao iu drugim programskim jezicima, ključne riječi su preuzete iz engleskog jezika. Postoje dva osnovna tipa podataka: nizovi i brojevi. Sa pojavom Visual Basic verzije, kao i njenim raznim modifikacijama (kao što je VBA), mnogi drugi tipovi podataka i dodaci, tipični za savremenim jezicima programiranje (na primjer, kao što je objektni model). Deklariranje varijabli ne zahtijeva poseban odjeljak (za razliku od, na primjer, Pascal). Deklarisanje varijable je prva upotreba iste.

    Rane verzije BASIC-a (kao što su BASICA, GW-BASIC) značajno se razlikuju od modernih dijalekata i danas se praktično ne koriste.

    Rane verzije

    Pojava programa u ranim verzijama BASIC-a je u velikoj mjeri bila određena činjenicom da je bio namijenjen programskom okruženju s uređivačem teksta. U takvom uređivaču korisnik nije mogao prikazati sav tekst na ekranu (u prozoru), kretati se po njemu u bilo kojem smjeru pomoću tipkovnice i/ili miša. U uređivačima reda, da bi promijenio red teksta, korisnik mora dati naredbu za promjenu reda sa datim brojem, zatim unijeti novi tekst navedenog reda. Da biste umetnuli novi red, morate dati naredbu za umetanje, opet navodeći broj. Ulazni nizovi se prikazuju uzastopno na ekranu (bez obzira na brojeve). Da biste vidjeli izvršene promjene, koristi se naredba za izlaz teksta, koja ispisuje redove ispravnim redoslijedom (uzlaznim brojevima).

    Sve ovo se ogleda u BASIC-u. Svaki red počinje brojem. Kada se unese u editor, linija se pojavljuje u izvornom kodu programa na poziciji koja odgovara njegovom broju. Da biste umetnuli novi red, bilo je potrebno dodati red sa brojem koji je bio u rasponu između brojeva druga dva reda. Bilo je nemoguće „razmaknuti“ redove ako je bilo potrebno ubaciti novi red između redova sa susjednim brojevima, morali ste ponovo unijeti ove redove sa drugim brojevima da biste osigurali prekid u numeraciji (ili koristiti posebnu naredbu RENUM, koji je konstantnim korakom prenumerirao sve već unesene redove, sinhrono mijenjajući sve naredbe za skok). Da bi se pojednostavilo on-line uređivanje programa, postala je praksa numerisati redove sa korakom od 10 - to je u gotovo svim slučajevima omogućilo umetanje novih redova bez promjene prethodno unesenih brojeva. Na primjer, da biste dodali treći red između redova 20 i 30, napisali biste red broj 25. Tipičan red iz BASIC programa izgledao je ovako:

    10 PRINT "Halo, World!"

    Nije bilo bezbedno ručno menjati brojeve već postojećih linija, jer su brojevi delovali kao oznake za GOTO izraz. Ranije su u BASIC-u bile dozvoljene samo numeričke oznake za ovaj operator, a prisustvo jedinstvenog broja na svakoj liniji omogućavalo je bezuslovni skok na bilo koji od njih. Numeričke oznake i aktivno korišćenje GOTO je bio nezaobilazan u BASIC programiranju, što je doprinijelo lošoj strukturi koda i, na velikim projektima, zbunjivanju samih autora. Čak je i skovan šaljivi izraz "programiranje testenina" (spagetti kod), jer logika programa sa čestim GOTO prelazima podseća na tanjir špageta.

    Terminator operatora bio je kraj linije. Da biste postavili nekoliko naredbi u jedan red, trebate staviti dvotočku između njih (ovo nije bilo dozvoljeno u svim implementacijama jezika). Nazivi varijabli u većini dijalekata mogli su se sastojati od samo jednog slova, nakon čega se mogla dodati jedna cifra, što također nije doprinijelo boljem razumijevanju koda. Da biste kreirali varijablu tipa string, morali ste staviti znak dolara ($) iza imena. Varijabla bez ovog znaka bila je numerička varijabla (pokretni zarez). Bilo je još nekoliko modifikatora vezanih za numerički tip: znak postotka (%) - cijeli broj, uzvičnik (!) - regularna preciznost, oktotorp (#) - dvostruka preciznost (za podatke s pomičnim zarezom, odnosno decimalne razlomke ). U nekim verzijama, numerički modifikatori možda nisu primijenjeni ili nisu svi primijenjeni. U velikoj većini programa korišten je samo osnovni numerički tip.

    Izrazi su slični većini drugih proceduralnih programskih jezika, ali u prvim verzijama BASIC-a njihov skup je bio prilično loš. U najranijim verzijama, broj ključnih riječi nije dostigao ni 20. Evo skupa osnovnih programskih konstrukcija i interaktivnih naredbi koje su implementirane u gotovo svaki BASIC sistem kasnih 1970-ih:

    • LIST - Prikažite tekst programa na monitoru u pravilnom redosledu redova. Ovisno o implementaciji, naredba podržava parametre - raspon linija koje želite da izbacite. Ponekad je bila podržana varijanta LLIST - izlaz na uređaj za štampanje.
    • RUN - Pokreni trenutni program od prve izjave reda sa najmanjim brojem. Mogao bi se podržati parametar - broj linije od koje treba započeti izvršavanje.
    • REM - Komentar. Tekst koji je bio iza ključne riječi i prije kraja reda nije utjecao na izvršavanje programa. Mnogi tumači su također podržali pojedinačni citat " kao početak komentara.
    • INPUT "Prompt: ", Variable - Prikažite tekst "Prompt: " i pričekajte da korisnik unese vrijednost i pritisnite Enter. Nakon toga, unesena vrijednost će biti upisana u varijablu. U najjednostavnijim implementacijama, INPUT prompt nije bio podržan i morao se izdati u posebnom PRINT naredbi (vidi dolje).
    • PRINT "Text";Variable;Variable;"Text" - Izlaz na monitor sekvencijalno popisanih objekata (tekst i vrijednosti varijabli). Ovisno o implementaciji, separatori su različito percipirani: u nekim slučajevima separator je vodio do izlaza barem jednog razmaka, u drugima su se vrijednosti prikazivale u nizu i separatori su morali biti dodani ručno. Razdjelnik ";" također je izvršio funkciju potiskivanja prijevoda u sljedeći red.
    • CLS - Brisanje ekrana terminala. Ovisno o implementaciji, dizajnu i načinu rada terminala, tekstualni kursor je prebačen u gornji lijevi ili donji lijevi kut.
    • LET - Dodjela (format "LET varijabla = vrijednost"). U velikoj većini verzija, LET operator je bio podržan, ali je bio opcioni – dodjela varijablama je napisana bez LET-a).
    • DIM - Opis niza. Za razliku od običnih varijabli, nizovi su zahtijevali opis. Maksimalni broj dimenzija niza određen je samo implementacijom
    • PODACI - Skup podataka postavljenih direktno u tekst programa (analogno konstanti ili konstanti niza).
    • READ - Komanda za čitanje iz DATA skupa.
    • GOTO Lbl - Naredba bezuvjetnog skoka za oznaku Lbl.
    • ON… GOTO - Izračunata komanda skoka - iza ON je trebao biti izračunati izraz ili varijabla, a nakon GOTO - skup oznaka odvojenih zarezima. Vrijednost izraza je označavala broj naljepnice na koju treba ići.
    • AKO... ONDA... - Uobičajeni operater filijale. Nakon IF, postavlja se logički uslov, nakon THEN, naredba koja se mora izvršiti ako je ovaj uslov tačan. Da skratimo zapis, mnoge implementacije su podržale konvenciju - ako ONDA prati broj, onda je ovo oznaka na koju treba skočiti, to jest, oblik "IF ... THEN 150" je ekvivalentan "IF... THEN" IDI NA 150". "IF...GOTO..." obrasci također mogu biti podržani.
    • FOR LoopVariable=StartValue TO EndValue STEP Step - Zaglavlje petlje sa korakom. Pokreće petlju u kojoj varijabla sekvencijalno prolazi kroz niz vrijednosti od StartValue do EndValue u koraku. Tijelo petlje je ograničeno naslovom i ključnom riječi NEXT. Dio STEP se mogao izostaviti - u ovom slučaju korak je bio jednak jedan. Kada LoopVariable izađe izvan navedenih granica, ona skače na odgovarajući NEXT izraz.
    • SLJEDEĆE - Završetak tijela petlje korakom. Operator ukazuje da je potrebno skočiti na naslov trenutnog izvršnog fajla FOR petlja i nastaviti sa radom. U naprednijim implementacijama, NEXT bi mogao sadržavati listu varijabli petlje razdvojenih zarezima - to je značilo da se u datoj tački programa završava tijelo ne jedne, već nekoliko petlji. Upotreba NEXT sa varijablom također je osigurala od narušavanja programske logike, jer je uzrokovala grešku u izvođenju ako se prilikom izvršavanja ove naredbe ispostavilo da je petlja bila aktivna na varijabli koja nije ona čije je ime navedeno .
    • WHILE Uvjet - Zaglavlje ciklusa sa preduvjetom. Petlja je završila ako je uslov bio netačan. U ovom slučaju, došlo je do prijelaza izvan naredbe WEND koja odgovara zaglavlju.
    • WEND - Kompletiranje tijela WHILE petlja. Slično NEXT ali za petlju sa preduvjetom.
    • GOSUB Label - Pređite na potprogram počevši od Label. Povrat se događa kada se postigne naredba RETURN. Rekurzivni pozivi procedura su općenito bili zabranjeni i rezultirali su greškom u vremenu izvođenja.
    • RETURN - povratna izjava iz potprograma. Izvršen je bezuslovni skok na naredbu nakon GOSUB instrukcije koja je skočila na potprogram.
    • KRAJ - Kraj izvođenja programa. Sistem ulazi u interpreter i od korisnika se traži da unese komande.
    • LANAC - Učitavanje niza programskih linija sa eksternih medija.
    • OPEN - Otvaranje datoteke podataka na vanjskom mediju.
    • CLOSE - Zatvaranje datoteke podataka na vanjskom mediju.
    • GET - Sekvencijalno čitanje vrijednosti navedenih varijabli iz datoteke, pomicanje pokazivača datoteke preko posljednjeg pročitanog znaka.
    • PUT - Sekvencijalno upisivanje vrijednosti navedenih varijabli u datoteku, pomjerajući pokazivač datoteke izvan posljednjeg upisanog znaka.
    • DELETE - Interaktivna naredba - brisanje reda sa navedenim brojem.
    • SAVE - Komanda interaktivnog režima - spremanje trenutnog programa u datoteku na vanjskom mediju.
    • LOAD - Komanda interaktivnog režima - učitavanje programa u memoriju iz datoteke na vanjskom mediju. U pravilu, prema zadanim postavkama, to je dovelo do uništenja prethodno preuzetog programa i podataka.
    • RENUM - Komanda interaktivnog režima - prenumeracija svih ili datog opsega programskih linija počevši od datog broja sa određenim korakom. Podrazumevano - svi redovi programa su prenumerisani sa korakom od 10.

    Uslovni operator (IF..THEN) u početku je imao samo jednu granu - grana ELSE je odsutna u njemu i modelirana je korištenjem bezuslovnog skoka. Dakle, u sljedećem programu se izvodi elementarna operacija - unošenje broja i prikazivanje poruke “Negativan broj” ili “Pozitivan broj ili nula”, ovisno o njegovoj vrijednosti:

    10 INPUT I 20 AKO I >= 0 ONDA ODŠTAMPAJ "Pozitivan broj ili nul" : IDI NA 40 30 ISPISI "Negativan broj" 40 KRAJ

    Postojao je ON..GOTO izračunati operator tranzicije oznake (naslijeđen iz slične Fortran konstrukcije) - nakon ON, specificiran je numerički izraz, a nakon GOTO, lista brojeva linija. Prijelaz se dogodio na liniju čiji je broj na listi odgovarao vrijednosti izraza. Postoje i petlje (petlja sa brojačem FOR i petlja sa WHILE preduslovom).

    Korištenje korisnički definiranih funkcija (odjeljci koda, za višekratnu upotrebu) bilo je moguće na dva načina: definirane funkcije i potprograme.

    Potprogrami nisu bili analogni funkcijama jezika kao što su C ili Pascal, jer nisu imali imena i nisu mogli prihvatiti i/ili vratiti parametre. Parametri i rezultati su proslijeđeni kroz globalne varijable (sve varijable u ranim verzijama BASIC-a bile su globalne). Potprogrami se obično pišu na kraju modula, sa očigledno većim brojem od planiranog broja redova (na primjer, numeriranje bloka potprograma može početi od 5000, čak i ako program ima nekoliko stotina redova). Potprogrami nisu imali zaglavlja ili imena i nisu se razlikovali od bilo kojeg drugog dijela koda. Potprogram je pozvan pomoću ključne riječi GOSUB<метка>. Ovo je praktično klon GOTO, osim jedne stvari: povratak na pozivnu tačku se desio automatski kada je ključna riječ RETURN dosegnuta u potprogramu. GOSUB je, kao i GOTO, samo doprinio lošoj strukturi koda, jer je bilo teško pratiti izvršavanje programa koji sadrži veliki broj bezuslovnih skokova i potprograma. Rekurzija nije bila dozvoljena.

    Nemogućnost imenovanja potprograma (i prijenosa kontrole nad njima), nemogućnost prosljeđivanja parametara, odsustvo lokalnih varijabli, upotreba samo numeričkih oznaka u velikim projektima izazvali su zabunu u kodu i otežali otklanjanje grešaka.

    U nekim BASIC dijalektima, bilo je moguće učitati datoteku sa kodom direktno tokom izvršavanja programa (trenutni je ispušten) pomoću naredbe CHAIN. Ovo je bila jedna od najkorisnijih karakteristika jezika, jer vam je omogućavala da razbijete veliki projekat na module, pozivajući ih prema potrebi.

    Kritika

    Tokom svog vrhunca (1970-1980), BASIC je bio žestoko kritikovan. Pored navođenja očiglednih nedostataka jezika povezanih sa sintaktičkim siromaštvom ranih verzija i odsustvom mnogih priznatih i pogodnih konstrukcija i mehanizama, BASIC je kritiziran zbog činjenice da njegova jednostavnost i nestrukturiranost podstiču korištenje opakih razvojnih praksi i doprinose razvoju opasnih programskih navika koje ponekad mogu biti prikladne za brzo kreiranje malih programa za trenutne potrebe, ali mogu dovesti do propasti velikih projekata.

    Sveprisutno početno programsko obrazovanje zasnovano na BASIC-u oštro je kritikovano. Jedna od "vizit karata" Edsgera Dijkstre bila je izjava: " Praktično je nemoguće naučiti dobro programiranje studente koji su prethodno bili izloženi BASIC-u: kao potencijalni programeri oni su mentalno osakaćeni bez nade da će se regenerirati». (« Studente koji su prethodno studirali BASIC gotovo je nemoguće naučiti dobro programiranje. Kao budući programeri, oni su mentalno osakaćeni bez nade u oporavak.».)

    Kao odgovor na kritike, sljedbenici BASIC-a primjećuju da kritičari pripisuju jeziku one negativne strane, što treba pripisati njegovoj zloupotrebi. Nedostaci BASIC-a (ako imamo u vidu rane dijalekte) se javljaju kada se na njemu pokušavaju profesionalno razviti složeni i veliki programi i kada se koristi kao osnovni jezik za podučavanje programera, ali ovaj jezik nije bio namijenjen nijednoj od ovih aplikacija; njegov glavni zadatak je bio da obezbijedi studentima- ne-programeri prilika nakon minimum naučiti pisati samostalno protozoa programe za sopstvene potrebe kako ne bi ometali stručnjake za ovaj posao. Jezik je sasvim prikladan za ovaj zadatak.

    Ako govorimo o modernim dijalektima i implementacijama BASIC-a, onda su oni otišli toliko daleko od izvornog oblika jezika da se sve navedeno teško može smatrati povezanim s njima. Moderni BASIC dijalekti su prilično strukturirani jezici, uporedivi su po mogućnostima sa jezicima kao što su C, Pascal, itd.

    Proizvođači -) Standardi

    • ANSI X3.60-1978 "ZA MINIMALNE OSNOVNE"
    • ISO/IEC 6373:1984 "OBRADA PODATAKA - PROGRAMSKI JEZICI - MINIMALNI OSNOVNI"
    • ANSI X3.113-1987 "PROGRAMSKI JEZICI FULL BASIC"
    • GOST 27787-88 OSNOVNI programski jezik (uključuje ISO 6373:1984)
    • INCITS/ISO/IEC 10279-1991 (R2005) „Informaciona Tehnologija – Programiranje Jezici – Potpuno BASIC”
    • ANSI X3.113 TUMAČENJA-1992 "BILTEN OSNOVNIH TEHNIČKIH INFORMACIJA # 1 TUMAČENJA ANSI 03.113-1987"