Alates 1950. aastatest on arvutiteadlased välja töötanud tuhandeid programmeerimiskeeli. Paljud on varjatud, võib-olla loodud doktorikraadi jaoks. lõputöö ja sellest pole kunagi kuulnud. Teised muutusid mõne aja jooksul populaarseks, siis tuhmusid toetuse puudumise või seetõttu, et nad olid piiratud kindla arvutisüsteemiga. Mõned neist on olemasolevate keelte variandid, lisades uusi funktsioone nagu parallelism - võimalus käivitada programmi paljusid osi erinevates arvutites paralleelselt.
Loe lähemalt Mis on programmeerimiskeel?
Programmeerimiskeelte võrdlus
Arvutikeelte võrdlemiseks on mitu võimalust, kuid lihtsuse huvides võrdleme neid kompileerimismeetodi ja abstraktsuse taseme järgi.
Masinkoodi kompileerimine
Mõni keel nõuab programmide teisendamist otse masinkoodideks - juhisteks, millest CPU otse aru saab. Seda ümberkujundamise protsessi nimetatakse koostamine. Assambleekeel, C, C ++ ja Pascal on kompileeritud keeled.
Tõlgendatud keeled
Muud keeled on mõlemad Tõlgendatud nagu Basic, Actionscript ja Javascript või segu mõlemast, mis koostatakse vahekeeleks - see hõlmab Java ja C #.
Tõlgendatud keelt töödeldakse käitusel. Iga rida loetakse, analüüsitakse ja täidetakse. Tõlgendatud keelte nii aeglaseks teeb rea iga kord silmuses taastöötlemine. See lisakood tähendab, et tõlgendatud kood töötab 5-10 korda aeglasemalt kui kompileeritud kood. Tõlgendatud keeled, näiteks Basic või JavaScript, on kõige aeglasemad. Nende eeliseks ei ole vaja pärast muudatusi uuesti kompileerida. See on mugav programmeerimisel.
Sest koostatud programme peaaegu alati kiiremini kui tõlgendatud, on sellised keeled nagu C ja C ++ mängude kirjutamisel kõige populaarsemad. Java ja C # kompileerivad tõlgitud keelde, mis on väga tõhus. Kuna virtuaalset masinat, mis tõlgendab Java ja C #-d käitavat .NET-raamistikku, on tugevalt optimeeritud, väidetakse, et nendes keeltes asuvad rakendused on sama kiired kui mitte kiiremad kui kompileeritud C ++.
Abstraktsiooni tase
Teine viis keelte võrdlemiseks on abstraktsuse tase. See näitab, kui lähedane konkreetne keel riistvarale on. Masinkood on madalaim tase, koostekeelega sellest veidi kõrgemal. C ++ on kõrgem kui C, kuna C ++ pakub suuremat abstraktsiooni. Java ja C # on kõrgemad kui C ++, kuna nad kompileeruvad vahekeeleks, mida nimetatakse baitkoodiks.
Kuidas keeli võrrelda
Kiiresti koostatud keeled
- Assamblee keel
- C
- C ++
- Pascal
- C #
- Java
Mõistlikult kiire tõlgendamine
- Perl
- PHP
Aeglaselt tõlgendatud
- JavaScript
- ActionScript
- Põhiline
Masinkood on juhised, mida protsessor täidab. See on ainus asi, mida protsessor saab aru ja teostama. Tõlgendatud keeltes on vaja rakendust nimega an Tõlk mis loeb programmi lähtekoodi iga rea ja "käivitab" selle.
Tõlgendamine on lihtsam
Tõlgendatud keeles kirjutatud rakenduste peatamine, muutmine ja uuesti käitamine on väga lihtne ning seetõttu on nad programmeerimise õppimiseks populaarsed. Pole vaja koostamisetappi. Kompileerimine võib olla üsna aeglane protsess. Suure Visual C ++ rakenduse kompileerimine võib võtta minutitest tundidesse, sõltuvalt sellest, kui palju koodi tuleb uuesti üles ehitada ning mälu ja CPU kiirusest.
Kui arvutid esmakordselt ilmusid
Kui arvutid 1950ndatel esmakordselt populaarseks said, kirjutati programmid masinkoodina, kuna muud võimalust polnud. Programmeerijad pidid väärtuste sisestamiseks lülitid füüsiliselt klappima. See on nii tüütu ja aeglane viis rakenduse loomiseks, et tuli luua kõrgema taseme arvutikeeled.
Kokkupanija: kiiresti jooksev - kirjutage aeglaselt!
Montaažikeel on masinkoodi loetav versioon ja näeb välja selline
Mov A, 45 dollarit
Kuna Assembly keel on seotud kindla CPU või seotud protsessorite perekonnaga, pole Assembly Language väga kaasaskantav ning selle õppimine ja kirjutamine on aeganõudev. Sellised keeled nagu C on vähendanud montaažikeele programmeerimise vajadust, välja arvatud juhul, kui RAM on piiratud või on vaja ajakriitilist koodi. See on tavaliselt kerneli koodis opsüsteemi keskmes või videokaardi draiveris.
Assamblee keel on madalaim kooditase
Assamblee keel on väga madal; suurem osa koodist liigutab väärtusi lihtsalt protsessori registrite ja mälu vahel. Kui kirjutate palgaarvestuse paketti, mida soovite mõelda palkade ja maksude mahaarvamiste osas, mitte registreerige A-d mälupessa XYZ. Seetõttu on kõrgema taseme keeled nagu C ++, C # või Java on produktiivsemad. Programmeerija saab mõelda probleemvaldkonna (palgad, mahaarvamised ja viitlaekumised), mitte riistvara domeeni (registrid, mälu ja juhised) osas.
Süsteemide programmeerimine C-ga
C loodi 1970. aastate alguses Dennis Ritchie poolt. Seda võib pidada üldotstarbeliseks tööriistaks - väga kasulik ja võimas, kuid väga hõlpsalt veadest vabastatav, mis võib muuta süsteemid ebakindlaks. C on madala taseme keel ja seda on kirjeldatud kui kaasaskantavat monteerimiskeelt. Paljude skriptikeelte süntaks põhineb näiteks C-l, JavaScript, PHP ja ActionScript.
Perl: veebisaidid ja kommunaalkulud
Linuxi maailmas väga populaarne Perl oli üks esimesi veebikeeli ja on tänapäeval väga populaarne. Veebi "kiire ja räpase" programmeerimise jaoks jääb see ületamatuks ja juhib paljusid veebisaite. See on küll mõnevõrra varjunud PHP kui veebiskriptikeel.
Kodulehtede kodeerimine PHP-ga
PHP loodi veebiserverite keelena ja on väga populaarne koos Linuxi, Apache, MySqli ja lühidalt ka PHP või LAMP-iga. Seda tõlgendatakse, kuid eelkompileeritud, nii et kood käivitub mõistlikult kiiresti. Seda saab käitada lauaarvutites, kuid töölauarakenduste arendamisel ei kasutata seda nii laialdaselt. Põhineb C süntaksil, hõlmab see ka Objektid ja klassid.
Pascal loodi õpetamiskeeleks mõni aasta enne C-d, kuid oli kehva stringi- ja failikäsitlusega väga piiratud. Mitmed tootjad laiendasid keelt, kuid polnud ühtegi liidrit enne, kui ilmusid Borlandi Turbo Pascal (Dos'i jaoks) ja Delphi (Windowsi jaoks). Need olid võimsad rakendused, mis lisasid piisavalt funktsionaalsust, et muuta need kaubanduslikuks arendamiseks sobivaks. Borland oli aga palju suurema Microsofti vastu ja kaotas lahingu.
C ++: stiilne keel!
C ++ või C plus klassid, nagu see algselt oli teada, tulid kümme aastat pärast C-d ja tutvustasid C-le edukalt objektorienteeritud programmeerimist, aga ka selliseid funktsioone nagu erandid ja mallid. Kogu C ++ õppimine on suur ülesanne - siinsetest programmeerimiskeeltest on see kõige keerulisem, kuid kui olete selle omandanud, pole teil enam ühegi teise keelega raskusi.
C #: Microsofti suur panus
C # lõi Delphipärast Microsofti ja Delphi arendajate juurde kolimist tundis tema arhitekt Anders Hejlsberg end koduselt selliste funktsioonidega nagu Windowsi vormid.
C # süntaks on Javaga väga sarnane, mis pole üllatav, kuna Hejlsberg töötas pärast Microsofti kolimist ka J ++ kallal. Õppige C # ja olete Java teel paremini kursis. Mõlemad keeled on poolkompileeritud nii, et masinkoodiks kompileerimise asemel kompileeritakse need baitkoodiks (C # kompileeritakse CIL-i, kuid see ja Bytecode on sarnased) ja tõlgendatakse seejärel.
Javascript: programmid teie brauseris
Javascript pole midagi muud nagu Java, selle asemel on skriptikeel, mis põhineb C-süntaksil, kuid millele on lisatud Objektid ja seda kasutatakse peamiselt brauserites. JavaScripti tõlgendatakse ja palju aeglasemalt kui koostatud koodi, kuid töötab brauseris hästi.
Netscape'i leiutanud on osutunud väga edukaks ja saab mitme aasta pärast seistes uut elu, kuna AJAX; Asünkroonne Javascript ja XML. See võimaldab veebisaitide osi serverist värskendada, ilma et nad kogu lehte ümber joonistaksid.
ActionScript: vilgas keel!
ActionScript on JavaScripti rakendus, kuid eksisteerib ainult Macromedia Flashi rakendustes. Vektoripõhist graafikat kasutades kasutatakse seda peamiselt mängudes, videote ja muude visuaalefektide mängimiseks ning keerukate kasutajaliideste arendamiseks, kõik töötavad brauseris.
Põhiline algajatele
Põhiline on algajate üldotstarbelise sümboolse juhendi lühend ja see loodi 1960. aastatel programmeerimise õpetamiseks. Microsoft on koostanud oma keele paljude erinevate versioonidega, sealhulgas VBScriptiga veebisaitide jaoks ja väga edukateks Visual Basic. Selle uusim versioon on VB.NET ja see töötab samal platvormil .NET kui C # ja toodab sama CIL-i baidikoodi.
Lua on C-keeles kirjutatud tasuta skriptikeel, mis sisaldab prügivedu ja korutiine. See on hästi ühendatud C / C ++-ga ja seda kasutatakse mängutööstuses (ja ka muudes mängudes) mängude loogika skriptimiseks, sündmuste käivitajateks ja mängujuhtimiseks.
Järeldus
Ehkki kõigil on oma lemmikkeel ja nad on investeerinud aega ja ressursse selle programmeerimise õppimisse, on mõned probleemid, mida saab kõige paremini lahendada õige keele abil.
E.G, te ei kasutaks C-d veebirakenduste kirjutamiseks ja te ei kirjutaks Javascripti opsüsteemi. Kuid ükskõik kumma keele valite, kui see on C, C ++ või C #, vähemalt teate, et olete õiges kohas, kus seda õppida.