Siden 1950'erne har computerforskere udtænkt tusinder af programmeringssprog. Mange er uklare, måske skabt til ph.d. speciale og aldrig hørt om siden. Andre blev populære i et stykke tid derefter falmede på grund af manglende support eller fordi de var begrænset til et bestemt computersystem. Nogle er varianter af eksisterende sprog og tilføjer nye funktioner som parallelisme - muligheden for at køre mange dele af et program på forskellige computere parallelt.
Læs mere om Hvad er et programmeringssprog?
Sammenligning af programmeringssprog
Der er flere måder at sammenligne computersprog, men for at gøre det lettere, sammenligner vi dem efter kompilationsmetode og abstraktionsniveau.
Kompilering til maskinkode
Nogle sprog kræver, at programmer omdannes direkte til maskinkode - de instruktioner, som en CPU forstår direkte. Denne transformationsproces kaldes samling. Samlingssprog, C, C ++ og Pascal er samlet sprog.
Tolkede sprog
Andre sprog er enten fortolket såsom Basic, Actionscript og Javascript, eller en blanding af begge, der kompileres til et mellemsprog - dette inkluderer Java og C #.
Et tolket sprog behandles under kørsel. Hver linje læses, analyseres og udføres. At skulle oparbejde en linje hver gang i en løkke er det, der gør tolkede sprog så langsomme. Denne overhead betyder, at den fortolkede kode kører mellem 5 - 10 gange langsommere end den samlede kode. De fortolkede sprog som Basic eller JavaScript er de langsomste. Deres fordel behøver ikke at blive samlet igen efter ændringer, og det er praktisk, når du lærer at programmere.
Fordi samlet programmer løber næsten altid hurtigere end fortolket, sprog som C og C ++ er ofte de mest populære til at skrive spil. Java og C # kompilerer begge til et tolket sprog, der er meget effektivt. Fordi den virtuelle maskine, der fortolker Java og .NET-rammen, der kører C #, er stærkt optimeret, hævdes det, at applikationer på disse sprog er lige så hurtige hvis ikke hurtigere som kompileret C ++.
Niveau for abstraktion
Den anden måde at sammenligne sprog er abstraktionsniveau. Dette viser, hvor tæt et bestemt sprog er på hardwaren. Maskinkode er det laveste niveau, med monteringssprog lige over det. C ++ er højere end C, fordi C ++ tilbyder større abstraktion. Java og C # er højere end C ++, fordi de samles til et mellemliggende sprog kaldet bytecode.
Hvordan sprog sammenlignes
Hurtigt kompilerede sprog
- Forsamlingssprog
- C
- C ++
- Pascal
- C #
- Java
Rimelig hurtigt fortolket
- Perl
- PHP
Langsomt fortolket
- JavaScript
- ActionScript
- Grundlæggende
Maskinkode er de instruktioner, som en CPU udfører. Det er det eneste, en CPU kan forstå og udføre. Tolkede sprog har brug for en applikation, der kaldes en Tolk der læser hver linje i programkildekoden og derefter "kører" den.
Tolkning er lettere
Det er meget let at stoppe, ændre og køre programmer, der er skrevet på et tolket sprog, og det er grunden til, at de er populære til at lære programmering. Der er ingen kompileringstrin nødvendig. Kompilering kan være en ganske langsom proces. Et stort Visual C ++ -program kan tage fra minutter til timer at samle, afhængigt af hvor meget kode der skal genopbygges og hukommelsens og CPU-hastigheden.
Når computere først blev vist
Da computere først blev populære i 1950'erne, blev programmer skrevet i maskinkode, da der ikke var nogen anden måde. Programmerere måtte fysisk vippe switches for at indtaste værdier. Dette er en så kedelig og langsom måde at oprette et program på, at computersprog på højere niveau måtte oprettes.
Samler: hurtig at køre - langsom at skrive!
Samlingssprog er den læsbare version af maskinkode og ser sådan ud
Mov A, $ 45
Fordi det er bundet til en bestemt CPU eller familie af relaterede CPU'er, er Assembly Language ikke meget bærbar og er tidskrævende at lære og skrive. Sprog som C har reduceret behovet for Assembly Language-programmering undtagen hvor RAM er begrænset eller tidskritisk kode er nødvendig. Dette er typisk i kernekoden i hjertet af et operativsystem eller i en videokortdriver.
Samlingssprog er det laveste niveau på koden
Forsamlingssprog er meget lavt niveau; det meste af koden flytter bare værdier mellem CPU-registre og hukommelse. Hvis du skriver en lønpakke, vil du tænke på lønninger og skattefradrag, ikke Registrer A til hukommelsessted XYZ. Dette er grunden til sprog på højere niveau som C ++, C # eller Java er mere produktive. Programmereren kan ikke tænke på hardwaredomænet (registre, hukommelse og instruktioner) med hensyn til problemdomænet (lønninger, fradrag og periodiseringer).
Systemprogrammering med C
C blev udtænkt i de tidlige 1970'ere af Dennis Ritchie. Det kan betragtes som et generelt værktøj - meget nyttigt og kraftfuldt, men meget let at slippe bugs igennem, der kan gøre systemer usikre. C er et sprog på lavt niveau og er blevet beskrevet som bærbart forsamlingssprog. Syntaks for mange scripting-sprog er baseret på C, f.eks. JavaScript, PHP og ActionScript.
Perl: Websteder og hjælpeprogrammer
Perl var meget populær i Linux-verdenen og var et af de første websprog og er stadig meget populær i dag. For at udføre "hurtig og beskidt" programmering på nettet forbliver den uovertruffen og driver mange websteder. Det er dog blevet formørket noget PHP som et web-scripting sprog.
Kodning af websteder med PHP
PHP blev designet som et sprog til webservere og er meget populært sammen med Linux, Apache, MySql og PHP eller LAMP kort. Det fortolkes, men forudkompileres, så kode udføres rimeligt hurtigt. Det kan køres på stationære computere, men bruges ikke så vidt til udvikling af desktop-applikationer. Baseret på C-syntaks inkluderer det også objekter og klasser.
Pascal blev udtænkt som undervisningssprog et par år før C, men var meget begrænset med dårlig streng og filhåndtering. Flere producenter udvidede sproget, men der var ingen samlet leder, indtil Borlands Turbo Pascal (for Dos) og Delphi (for Windows) dukkede op. Dette var kraftfulde implementeringer, der tilføjede nok funktionalitet til at gøre dem egnede til kommerciel udvikling. Borland var imod den meget større Microsoft og tabte kampen.
C ++: Et klassisk sprog!
C ++ eller C plus klasser, som det oprindeligt blev kendt, kom cirka ti år efter C og introducerede med succes Objektorienteret programmering til C samt funktioner som undtagelser og skabeloner. At lære alt C ++ er en stor opgave - det er langt det mest komplicerede af programmeringssprog her, men når du først har mestret det, har du ingen problemer med noget andet sprog.
C #: Microsofts Big Bet
C # blev oprettet af DelphiArkitekten Anders Hejlsberg, efter at han flyttede til Microsoft, og Delphi-udviklere vil føle sig hjemme med funktioner som Windows-formularer.
C # syntaks ligner meget Java, hvilket ikke er overraskende, da Hejlsberg også arbejdede på J ++, efter at han flyttede til Microsoft. Lær C #, og du er godt på vej til at kende Java. Begge sprog er halvkompilerede, så i stedet for at kompilere til maskinkode, kompileres de til bytekode (C # kompilerer til CIL, men det og Bytecode er ens) og derefter tolkes.
Javascript: Programmer i din browser
Javascript er ikke noget som Java, i stedet er det et scriptingsprog baseret på C-syntaks, men med tilføjelse af objekter og bruges hovedsageligt i browsere. JavaScript tolkes og meget langsommere end kompileret kode, men fungerer godt i en browser.
Det er opfundet af Netscape, det har vist sig meget vellykket, og efter flere år i doldrum nyder en ny lejekontrakt pga. AJAX; Asynkron Javascript og XML. Dette gør det muligt for dele af websider at opdatere fra serveren uden at tegne hele siden.
ActionScript: Et prangende sprog!
ActionScript er en implementering af JavaScript, men findes kun inden for Macromedia Flash-applikationer. Ved hjælp af vektorbaseret grafik bruges det hovedsageligt til spil, afspilning af videoer og andre visuelle effekter og til udvikling af sofistikerede brugergrænseflader, der alle kører i browseren.
Grundlæggende for begyndere
Grundlæggende er et akronym for begyndere all-purpose symbolsk instruktionskode og blev oprettet for at undervise i programmering i 1960'erne. Microsoft har lavet sproget til deres egne med mange forskellige versioner, herunder VBScript til websteder og det meget succesrige Visual Basic. Den seneste version af dette er VB.NET, og denne kører på den samme platform .NET som C # og producerer den samme CIL-bytecode.
Lua er et gratis scriptingsprog skrevet i C, der inkluderer affaldsindsamling og koroutiner. Det samles godt med C / C ++ og bruges i spilindustrien (og ikke-spil også) til script-logik, begivenhedsudløsere og spilkontrol.
Konklusion
Mens alle har deres yndlingssprog og har investeret tid og ressourcer i at lære at programmere det, er der nogle problemer, der bedst løses med det rigtige sprog.
E.G, du ville ikke bruge C til at skrive webapps, og du ville ikke skrive et operativsystem i Javascript. Men uanset hvilket sprog du vælger, hvis det er C, C ++ eller C #, ved du i det mindste, at du er på det rigtige sted at lære det.