Ohjelmointi kieli on tavanomainen merkintätapa muotoilussa algoritmeja ja tuottaa tietokoneohjelmia , jotka soveltavat niitä. Tavalliseen tapaan kuin luonnollinen kieli, ohjelmointikieli koostuu aakkosista , sanastosta , kieliopin säännöistä , merkityksistä , mutta myös käännösympäristöstä, jonka on tarkoitus tehdä sen syntaksista koneen ymmärrettävissä.
Ohjelmointikielet mahdollistavat toisaalta kuvaamaan datarakenteet, joita tietokonelaite käsittelee, ja toisaalta osoittamaan, kuinka manipulaatiot suoritetaan, minkä algoritmien mukaan. Ne toimivat viestintävälineenä, jolla ohjelmoija kommunikoi tietokoneen, mutta myös muiden ohjelmoijien kanssa; ohjelmat yleensä kirjoittavat, lukevat, ymmärtävät ja muokkaavat ohjelmoijaryhmä.
Ohjelmointikielen toteuttaa automaattinen kääntäjä: kääntäjä tai tulkki . Kääntäjä on tietokoneohjelma, joka muuntaa ensin tietyllä ohjelmointikielellä kirjoitetun lähdekoodin kohdekoodiksi , jonka tietokone voi suorittaa suoraan, nimittäin konekielisenä tai välikoodina , kun taas Tulkki suorittaa tämän käännöksen " lennossa".
Ohjelmointikielet tarjoavat erilaisia abstraktiomahdollisuuksia ja merkinnän lähellä algebraa , mikä antaa mahdollisuuden kuvata ytimekkäästi ja helposti ymmärrettävällä tavalla datankäsittelytoiminnot ja ohjelmavirran kehittymisen tilanteiden mukaan. Abstraktin kirjoituksen mahdollisuus vapauttaa ohjelmoijan mielen tarpeettomasta työstä, mukaan lukien tietokonelaitteiston erityispiirteiden huomioon ottaminen, ja antaa siten hänen keskittyä edistyneempiin ongelmiin.
Jokainen ohjelmointikieli tukee yhtä tai useampaa ohjelmointitapaa - paradigmaa . Paradigman indusoivat käsitteet ovat osa ohjelmointikieliä ja antavat ohjelmoijalle mahdollisuuden ilmaista kielellä ratkaisu, joka on kuviteltu tämän paradigman mukaan.
Ensimmäiset ohjelmointikielet luotiin 1950-luvulla samaan aikaan kuin tietokoneet . Monet ohjelmointikonseptit aloitettiin kuitenkin yhdellä kielellä tai joskus useilla kielillä, ennen kuin niitä parannettiin ja laajennettiin seuraavilla kielillä. Suurimman osan ajasta ohjelmointikielen suunnitteluun on vaikuttanut voimakkaasti aiempien kielten kokemus.
Ohjelmointikieli on rakennettu muodollisesta kieliopista , joka sisältää symboleja ja syntaktisia sääntöjä, joihin semanttisäännöt liittyvät. Nämä elementit ovat enemmän tai vähemmän monimutkaisia kielen kyvyn mukaan. Ohjelmointikielen toimintatavat ja monimutkaisuuden määrittely määräytyvät yleensä niiden kuulumisesta yhteen Chomsky-hierarkian asteista .
Teoreettisesta näkökulmasta katsottuna mikä tahansa tietokonekieli voidaan luokitella ohjelmointikieleksi, jos se on Turing-täydellinen, toisin sanoen se antaa mahdollisuuden edustaa kaikkia laskettavia toimintoja Turingin ja Churchin mielessä (samalla kun myönnetään lukuun ottamatta teoriaa, jonka mukaan tietokoneiden muisti ei ole ääretön tila).
Säännöt syntaksin Muodollisen kieliopin määrittelemät ne hallitsevat eri tapoja, joilla kielen elementit voidaan yhdistää ohjelmien saamiseksi. Välimerkit (esimerkiksi symbolin kiinnittäminen ; ohjelman käskyrivin loppuun) ovat syntaksia. sanastoa Kielen elementtien joukossa sanasto edustaa symboleista rakennettuja ohjeita . Käsky voi olla muistitikku tai vain symbolinen, kuten silloin, kun sitä edustavat toimintosymbolit , kuten aritmeettiset operaattorit ("+" ja "-") tai Booleans (& & loogisille ja esimerkiksi). Puhumme joskus myös avainsanasta osoittamaan ohjeet (kieltä väärin, koska avainsanan käsite ei kata symboleja, jotka ovat kuitenkin myös osa sanastoa ). semantiikkaa Semantiikan säännöt määrittelevät jokaisen kielellä rakennettavan lauseen merkityksen ja erityisesti sen, mitä lauseella on vaikutuksia, kun ohjelma suoritetaan. Tiede opiskelijalle on ohjelmointikielien semantiikka . aakkoset Ohjelmointikielien aakkoset perustuvat nykyisiin standardeihin, kuten ASCII , joka koostuu kirjaimista A - Z ilman aksentteja, numeroita ja symboleja, tai Unicode useimmille nykyaikaisille kielille (joissa käyttö on rajoitettu yleisesti kirjaimellisiin kieliin ja kommentit, lukuun ottamatta merkittäviä poikkeuksia, kuten C♯, jotka sallivat myös unicode-tunnisteet).Useimmat ohjelmointikielet voivat tarjota lisää rakenteellisia elementtejä, menettelytapoja sekä väliaikaisia ja muuttuvia määritelmiä ja tunnisteita:
kommentit Kommentit ovat tekstejä, joita ei voi kääntää. Ne voidaan lisätä ohjelmiin selitysten jättämiseksi. Kommentit on erotettu merkinnöillä, jotka eroavat ohjelmointikielestä ohjelmointikielestä, kuten "-" , "/ *" tai "//" . tunnukset Ohjelman rakenneosia, kuten muuttujia , menettelyjä tai tyyppejä, käytetään ohjelman ja sen toiminnan järjestämiseen. Voimme esimerkiksi jakaa ohjelman funktioihin tai antaa sille rakenteen esineiden mukaan : nämä rakenne-elementit määritellään tunnisteilla tai avainsanaproseduureilla kielestä riippuen.Ohjelmointikieli tarjoaa puitteet algoritmien rakentamiselle ja vuokaavioiden ilmaisulle. Sen avulla voidaan erityisesti kuvata tietokonelaitteiston käsittelemän datan rakenteita ja mitä manipulaatioita tulee olemaan. Ohjelmointikieliä käytetään viestintävälineenä tietokoneen, mutta myös ohjelmoijien välillä: ohjelmoijaryhmä kirjoittaa, lukee ja muokkaa ohjelmia yleensä.
Ohjelmointikieli tarjoaa joukon käsitteitä, joita voidaan käyttää primitiivinä algoritmien kehittämiseen. Ohjelmoijat ymmärtävät, että kieli on selkeä, yksinkertainen ja yhtenäinen, että on olemassa vähintäänkin käsitteitä, jotka voidaan yhdistää yksinkertaisten ja säännöllisten sääntöjen mukaisesti. Ohjelmointikielen ominaisuudet vaikuttavat siihen, kuinka helposti ohjelmia voidaan kirjoittaa, testata ja myöhemmin ymmärtää ja muokata.
Helppokäyttöisyys, siirrettävyys ja selkeys ovat suosittuja ohjelmointikielien ominaisuuksia. Käyttömukavuus, joka riippuu syntaksista, sanastosta ja symboleista, vaikuttaa tällä kielellä kirjoitettujen ohjelmien luettavuuteen ja oppimisen kestoon. Siirrettävyys mahdollistaa tietyn tietokonealustan (käyttöjärjestelmän) suorittaman kirjoittaman ohjelman siirtämisen suoritettavaksi toisella alustalla.
Ohjelmoijat pitävät syntaksista ilmaisemaan ohjelmalle ominaisen loogisen rakenteen. Yksi ohjelmoinnin huolenaiheista on välttää viat, että ne on mahdollista havaita, välttää ja korjata; tämän mahdollistavat ohjelmointikielten sisäiset mekanismit. Joskus epäsuoria tarkastuksia tehdään ongelmien löytämiseksi.
Ohjelmoijat ymmärtävät, että ohjelmointikieli on hyvän ohjelmointi- ja suunnittelutavan mukaista, rohkaisee ohjelmointia, helpottaa ohjelmien ylläpitoa ja estää tai jopa kieltää huonot käytännöt. gotoEsimerkiksi käskyn käyttöä, joka on ollut käytössä jo varhaisista ohjelmointikielistä, pidetään huonona käytäntönä. Sen käyttöä ei suositella tai se on jopa mahdotonta uusimmilla ohjelmointikielillä.
Yhdenmukaisuus alan standardien kanssa, mahdollisuus käyttää toisella ohjelmointikielellä kirjoitettuja ominaisuuksia ja useiden ketjujen samanaikainen suorittaminen ovat suosittuja mahdollisuuksia ohjelmointikielille.
Ohjelmointikieli perustuu joukkoihin käsitteisiin, kuten käskyihin, muuttujiin, tyyppeihin, menettelyihin tai toimintoihin, joita voidaan käyttää primitiivinä algoritmien kehittämiseen.
OhjeTietokoneelle annettu määräys.
MuuttujaNimi, jota käytetään ohjelmassa viittaamaan ohjelman manipuloimiin tietoihin.
VakioNimi, jota käytetään viittaamaan pysyvään arvoon.
Kirjaimellinen ilmaisuOhjelmassa kokonaan mainittu arvo.
tyyppiJokaisella datalla on luokitus, joka vaikuttaa mahdollisten arvojen alueeseen, suoritettaviin toimintoihin ja tietojen esittämiseen bitteinä. Jokainen ohjelmointikieli tarjoaa joukon primitiivisiä tyyppejä , jotka on sisällytetty kieleen. Jotkut kielet tarjoavat mahdollisuuden luoda uusia tyyppejä.
Yleisiä primitiivisiä tietotyyppejä ovat kokonaisluvut , reaaliluvut , totuusarvo , merkkijonot ja osoittimet .
Tarkemmin sanottuna looginen tyyppi on tyyppi, jolla on vain kaksi arvoa, tosi ja epätosi , kun taas osoitintyyppi viittaa tietoihin, jotka sijaitsevat jonnekin muistissa.
Esimerkiksi C-kielellä on monenlaisia tyyppejä, joiden avulla voit valita tarkasti muistille varatun muistin määrän.
TietorakenneTyypillinen tapa järjestää tietojoukko muistiin, mikä vaikuttaa niiden manipulointiin käytettyihin algoritmeihin. Yleisiä rakenteita ovat taulukot , tietueet , luettelot , pinot , jonot ja puut .
JulistusOhjelma lause, jota käytetään ilmoittamaan kääntäjälle (kääntäjä, tulkki jne.) Ohjelman elementtien nimistä ja ominaisuuksista, kuten muuttujat, menettelyt, tyypit jne.
Tarkistukset suoritetaan kääntämisajankohtana tai ohjelman suorituksen aikana sen varmistamiseksi, että ohjelman toiminnot ovat mahdollisia käytetyillä tietotyypeillä. Vuonna voimakkaasti kirjoitettu kieli , jokainen osa ohjelmaa on ainutlaatuinen tyyppi, joka tunnetaan ja tarkistetaan käännöksen yhteydessä, mikä mahdollistaa kiinni virheet ennen suorittamalla ohjelma.
Menettelytavat, toiminnot, menetelmätEri ohjelmointikielet tarjoavat mahdollisuuden erottaa ohjelman fragmentti ja tehdä siitä yleinen, konfiguroitava toiminto, jota voidaan käyttää toistuvasti. Näitä fragmentteja kutsutaan menettelytavoiksi , toiminnoiksi tai menetelmiksi paradigmasta riippuen.
ModuulitOhjelmointikielet voivat myös tarjota mahdollisuuden jakaa ohjelma useaan osaan, joita kutsutaan moduuleiksi , joista jokaisella on määritelty rooli, ja sitten yhdistää osat.
Menettelyn ja moduulin käsitteiden on tarkoitus helpottaa monimutkaisten ja laajojen ohjelmien luomista auttamalla käsittelemään tätä monimutkaisuutta. Nämä toiminnot mahdollistavat erityisesti modulaarisuuden ja abstraktion .
Paradigma on yksi tapa lähestyä ohjelmointia. Jokainen paradigma tuo mukanaan ohjelmointifilosofiansa; kun ohjelmoija on kuvitellut ratkaisun tietyn paradigman mukaisesti, tätä paradigmaa seuraava ohjelmointikieli antaa sen ilmaista. Pakottavat, vakuuttavat, toiminnalliset, loogiset, olio-orientoidut, kilpailijat, visuaaliset, tapahtumavetoiset ja verkkopohjaiset ovat ohjelmointiparadigmoja. Jokainen ohjelmointikieli heijastaa yhtä tai useampaa paradigmaa tarjoten joukon käsitteitä, joita voidaan käyttää ilmaisemaan ohjelmointiongelman ratkaisu. Koko historian ajan tutkijat ja ohjelmoijat ovat tunnistaneet ohjelmointityylin edut ja rajoitukset ja tuoneet uusia tyylejä. Useimmat nykyaikaiset ohjelmointikielet mahdollistavat useiden ohjelmointiparadigmojen omaksumisen edellyttäen, että ne ovat yhteensopivia.
Pakollinen tai menettelyllinen paradigma perustuu periaatteeseen suorittaa ohjeet askel askeleelta aivan kuten keittämisen resepti. Se perustuu Von Neumannin koneen periaatteeseen . Joukko suorittamisen virtauksen ohjaus ohjeet ohjaa järjestys, jossa ohjeet , jotka kuvaavat vaiheet suoritetaan . C , The Pascal , The Fortran ja COBOL ovat esimerkkejä ohjelmointikieli, joka toteuttaa välttämätöntä paradigma.
On olemassa olennaisesti kaksi julistavaa paradigmaa; nämä ovat toiminnallinen paradigma ja looginen paradigma. Toiminnallisessa paradigmassa ohjelma kuvaa matemaattisia toimintoja. Loogisessa paradigmassa se kuvaa predikaatteja : toisin sanoen lauseita, jotka heti ilmentyneinä voivat olla totta tai väärää tai eivät saa totuusarvoa (kun predikaatin arviointi ei pääty). Toteutusmallissa abstrakti kone suorittaa tarvittavat toiminnot kunkin funktion tai kunkin predikaatin tuloksen laskemiseksi. Näissä paradigmissa muuttujaa ei muuteta osoituksella . Yksi pääominaisuuksista on viitteellinen läpinäkyvyys , mikä tarkoittaa, että lauseke voidaan korvata sen tuloksella muuttamatta ohjelman käyttäytymistä.
ToimivaToiminnallinen paradigma perustuu kaavojen arviointiin, jotta tulosta voidaan käyttää muissa laskelmissa; se perustuu rekursioon ja sen malli on lambda-laskenta , tarkemmin sanottuna pään normaalin muodon pieneneminen . Kaikissa laskelmissa arvioidaan lausekkeita tai puhelutoimintoja. Yksinkertaisesti sanottuna laskennan tulosta käytetään laskelmissa tai laskelmissa, jotka tarvitsevat sen tuloksen, kunnes ohjelman tuloksen tuottava toiminto on arvioitu. Funktionaalisen paradigman esittivät Lisp- ja ISWIM-kielet sekä rekursiivisten toimintojen osalta Algol 60 , 1960-luvulla. Kielet, kuten Ruby ja Scala, tukevat useita paradigmoja, mukaan lukien toiminnallinen paradigma, kun taas Haskell tukee vain toiminnallista paradigmaa ja OCaml suosii toiminnallista paradigmaa, jonka se jakaa objektiparadigman kanssa, ja pienen annoksen imperatiivia.
LogiikkaLoogisen paradigman tavoitteena on vastata kysymykseen tutkimalla joukkoa käyttäen aksiomia, kyselyitä ja vähennyssääntöjä. Ohjelman toteutus on joukko faktojen etsintää sarjassa vedoten vähennyssääntöihin. Saadut tiedot voidaan liittää toiseen sääntöjoukkoon ja käyttää sitten toisen tutkimuksen yhteydessä. Ohjelma suoritetaan arvioinnilla: järjestelmä etsii kaikki lauseet, jotka vähentämällä vastaavat vähintään yhtä joukon elementtiä. Ohjelmoija ilmoittaa säännöt, ja järjestelmä ajaa prosessia. Prolog- kieli otti loogisen paradigman käyttöön vuonna 1970.
Kohdekeskeisen paradigman on tarkoitus helpottaa suuren ohjelman jakamista useisiin moduuleihin, jotka on eristetty toisistaan. Siinä esitellään käsitteet esineestä ja perinnöstä. Objekti sisältää aiheeseen liittyvät muuttujat ja toiminnot. Muuttujat voivat olla yksityisiä , toisin sanoen niitä voi käsitellä vain objekti, joka sisältää ne. Kohde sisältää implisiittisesti esi-isiensä muuttujat ja toiminnot, ja tämä perintö auttaa koodia uudelleenkäytössä. Kohdesuuntautunut paradigma mahdollistaa datan vahvan liittämisen menettelyihin. Simula- kieli otti sen käyttöön 1960-luvulla ja tuli suosituksi 1980-luvulla, jolloin tietokoneiden laskentatehon kasvu mahdollisti suurten ohjelmien ajamisen. Eri ohjelmointikieliä on rikastettu olio-ohjelmoinnin mahdollistamiseksi; tämä on tapaus C ++ (johdettu C- kielestä ), Simula , Smalltalk , Swift ja Java ovat ohjelmointikieliä olio-paradigmassa.
Samanaikaisessa paradigmassa ohjelma voi suorittaa useita tehtäviä samanaikaisesti. Tämä paradigma esittelee kierteen , aktiivisen odotuksen ja etätoimintakutsun käsitteet . Nämä käsitteet otettiin käyttöön 1980-luvulla, kun tekniikan kehityksen seurauksena tietokoneesta tuli kone, jolla oli useita prosessoreita ja joka pystyi suorittamaan useita tehtäviä samanaikaisesti. Nykyaikaiset vuoden 2013 ohjelmointikielet, kuten C ++ ja Java, soveltuvat moniytimisille mikroprosessoreille ja mahdollistavat ketjujen luomisen ja käsittelyn. Viime aikoina olemme nähneet täysin samanaikaisuuden hallintaan suuntautuneiden kielten, kuten Go- kielen, syntymisen .
Suurimmassa osassa ohjelmointikieliä lähdekoodi on teksti, mikä vaikeuttaa kaksiulotteisten objektien ilmaisua. Ohjelmointikielen, kuten Delphi tai C #, avulla voit käsitellä objekteja vetämällä ja pudottamalla, ja tuloksena oleva piirros käännetään sitten olio- ja tapahtumavetoiseksi tekstiesitykseksi. Alan Kay esitteli visuaalisen paradigman 1980-luvun lopulla Smalltalk- kielellä tarkoituksena helpottaa graafisten rajapintojen ohjelmointia .
Kun vuorovaikutteinen ohjelma kysyy kysymyksen ja suorittaa toimia vastauksen perusteella, tapahtumien tyyliin ohjelma ei odota mitään ja suoritetaan, kun jotain on tapahtunut. Esimerkiksi käyttäjä liikuttaa hiirtä tai painaa painiketta. Tässä paradigmassa ohjelmoinnilla tarkoitetaan tapahtumien perusteella toteutettavia toimia. Ja CSS-toiminto voi laukaista toisen toiminnan, joka vastaa toista tapahtumaa. Simula- kieli otti tapahtumaparadigman käyttöön 1970-luvulla, ja siitä tuli suosittu graafisten käyttöliittymien ja verkkosovellusten myötä.
Kun Internet tuli käyttöön 1990-luvulla, tietoja, kuvia ja koodia vaihdetaan tietokoneiden välillä. Jos tulosta pyydetään tietokoneelta, se voi suorittaa tarvittavan ohjelman ja lähettää tuloksen. Se voi myös lähettää tarvittavan koodin asiakastietokoneelle tuloksen laskemiseksi itse. Ohjelma käännetään harvoin konekielelle , mutta se tulkitaan tai käännetään välimuodoksi, tavukoodiksi , jonka suorittaa virtuaalikone , tai käännetään konekielelle ajon aikana ( just-in-time ). Java, PHP ja Javascript ovat verkkopohjaisia ohjelmointikieliä.
Kielen käyttö on mahdollista automaattisen kääntäjän avulla. Ohjelma, joka ottaa kyseisellä kielellä kirjoitetun tekstin tekemään jotain sen kanssa, yleensä joko:
Ohjelma , joka muuntaa tekstin kieli, jonka avulla sen suorittamisen, kuten konekielellä , tavukoodiksi tai konekielellä .
Ohjelma, joka suorittaa pyydetyt ohjeet. Sillä on sama rooli kuin koneella, joka tunnistaa tämän kielen.
Jokaisella tietokonelaitteella on joukko ohjeita, joita voidaan käyttää toimintojen suorittamiseen. Ohjeiden avulla voit suorittaa aritmeettisia tai loogisia laskutoimituksia, siirtää tai kopioida tietoja tai haarautua muiden ohjeiden suorittamiseen. Nämä ohjeet tallennetaan bittisekvenssien muodossa, jolloin kukin sekvenssi vastaa suoritettavan operaation koodia ja operandeja, toisin sanoen kyseisiä tietoja; se on konekieli.
Käännös tapahtuu useissa vaiheissa. Ensinnäkin kääntäjä suorittaa leksisen analyysin, jossa hän tunnistaa ohjelmassa käytetyt kielielementit. Seuraavassa vaiheessa, jäsennettäessä , kääntäjä rakentaa puukaavion, joka heijastaa sitä, miten kielielementit on yhdistetty ohjelmassa ohjeiden muodostamiseksi. Sitten aikana semanttinen analyysi , kääntäjä määrittää, onko se mahdollista suorittaa operaation ja ohjeet, jotka tarvitaan kohdekielen.
Kokoonpanon ohjelmointikielessä huijaussanoja (muistisanoja) käytetään viittaamaan koneen ohjeisiin. Ohjeet eroavat konstruktorista riippuen ja sama koskee muistitiedostoja. Kokoonpano ohjelma kääntää kunkin muistikkaan vastaavaksi bittisekvenssin.
Ohjelmointikielet toimivat usein ajonaikaisesti .
Runtime (käännös: toimeenpanija ) on joukko ohjelmistojen kirjastoja , jotka toteuttavat ohjelmointikieli, jonka avulla on mahdollista suorittaa yksinkertaisia toimintoja, kuten kopiointi tietoja, mutta myös paljon monimutkaisempi toimintaa.
Kun käännetään ohjelmaa konekieleksi, yksinkertaiset toiminnot käännetään vastaaviin konekielisiin ohjeisiin, kun taas monimutkaiset toiminnot käännetään ajonaikaisfunktioiden käyttöön . Tietyillä ohjelmointikielillä kaikki ohjeet käännetään ajonaikaisiksi käyttötarkoituksiksi, joka sitten toimii välittäjänä tietokonealustan tarjoamien mahdollisuuksien ja ohjelmointikielelle ominaisten rakenteiden välillä.
Jokaisella ohjelmointikielellä on tavanomainen tapa kääntää toimintojen tai toimintojen suorittaminen, asettaa muuttujat muistiin ja välittää parametrit. Nämä yleissopimukset panee täytäntöön runtime . Runtime myös käyttää joidenkin lisäominaisuuksia ohjelmointikieliä kuten roskien keräys ja pohdintaa.
Ohjelmointikielet ovat yleensä itse toteutettuja, ts. Kyseisen ohjelmointikielen kääntäjä toteutetaan itse kielellä. Esimerkki: Pascal-kielen kääntäjä voidaan kirjoittaa Pascal-kielellä.
Ajonaikaiset ohjelmointikielet toteuttavat lisäominaisuudet, kuten roskien keräilijä , poikkeusten, tapahtumien tai säikeiden käsittely sekä myöhäinen sidonta ja pohdinta .
Mekanismi, joka poistaa käyttämättömät muuttujat ja vapauttaa heille varatun muistitilan.
Odottamaton tosiasia, usein vahingossa, aiheuttaa ohjelman normaalin kulun, ja ohjelman on huolehdittava tästä poikkeuksellisesta tosiasiasta ennen kuin se voi jatkaa. Joidenkin ohjelmointikielien avulla voit tarkoituksellisesti pysäyttää ohjelman normaalin toiminnan.
Menettely, joka suoritetaan, kun tietty ehto täyttyy. Tapahtumia käytetään erityisesti graafisten rajapintojen toteuttamiseen .
Suoritettava komentosarja. Ohjelmointikielet manipuloivat kierteet sallia useiden tehtävät samanaikaisesti. Tämä mahdollisuus samanaikaisen suorittamisen, tarjoamia käyttöjärjestelmissä, tarjotaan myös valon muodossa , jonka runtime ohjelmointikieliä.
Sitova prosessi (Englanti myöhäinen sidonta tai dynaaminen sitova ) koostuu assosioida kunkin tunnisteen ohjelman muistipaikkaan kyseessä. Tämä toimenpide voidaan suorittaa ohjelman käännöksen aikana, ohjelman suorittamisen aikana tai juuri ennen sitä. Sen sanotaan olevan myöhässä, kun linkitysoperaatio suoritetaan hyvin myöhään, juuri ennen kyseessä olevan sijainnin käyttöä.
Ohjelman mahdollisuus hankkia tietoja omista ominaisuuksistaan. Ohjelmointikielen ohjeiden avulla ohjelma voi hankkia tietoja itsestään ja käsitellä niitä kuten tietoja.
Rakenne, jonka avulla voidaan manipuloida välttämättömiä piirteitä puhtailla toiminnallisilla kielillä.
Vaikka ohjelman käsite esiintyy vähitellen XIX e- vuosisadan toisella puoliskolla , ensimmäiset ohjelmointikielet ilmestyvät vasta noin vuonna 1950. Kukin pystyy luomaan oman kielensä, mutta on mahdotonta määrittää kielten kokonaismäärä. tällä hetkellä olemassa.
Voimme myös luokitella ohjelmointikielet niiden käytön mukaan, koska monet kielet ovat erikoistuneet tiettyyn sovellukseen tai toimialueeseen.
Tämän tyyppistä kieltä käytetään asiakkaan ja palvelimen parempaan vuorovaikutukseen .
On Web-palvelin puolella , mikä tekee mahdolliseksi tuottaa sivuille, joiden sisältö on luotu kullekin näyttölaitteelle. Nämä kielet yhdistetään usein myös kieleen, joka kommunikoi tietokantojen kanssa (esimerkkejä: PHP , LiveCode ).
Asiakkaan puolella (yleensä verkkoselaimessa ) nämä kielet tarjoavat mahdollisuuden reagoida käyttäjän tiettyihin toimiin tarvitsematta kysyä palvelimelta. Esimerkiksi verkkosivun JavaScript voi reagoida käyttäjän syötteeseen lomakkeessa (ja tarkistaa tietojen muodon ).
Jotkin kielet mahdollistavat sekä asiakas- että palvelinnäkökohtien kehittämisen. Tämä pätee Ocsigen , Hop , Dart tai jopa palvelinpuolen JavaScript .
Teoreettista ohjelmointikieltä kutsutaan joskus muodollisiksi järjestelmiksi, joita käytetään teoreettisesti kuvaamaan tietokoneiden toimintaa. Niitä ei käytetä sovellusten kehittämiseen, vaan mallien esittämiseen ja niiden ominaisuuksien esittelemiseen.
Voimme mainita Turingin koneen ja kirkon λ-laskennan, jotka molemmat ovat peräisin 1930-luvulta ja ovat siten ennen tietokoneen keksimistä. Λ-laskentaa käytettiin myöhemmin teoreettisena perustana toiminnallisten ohjelmointikielien perheelle . 1980-luvulla Robin Milner kehitti π-laskennan kilpailevien järjestelmien mallintamiseksi.
Eksoottisten kielten tavoitteena on luoda täydellisiä ja toimivia kielioppeja, mutta paradigmassa kaukana yleissopimuksista. Monia pidetään myös vitseinä.
Näitä kieliä on yleensä vaikea toteuttaa käytännössä, ja siksi niitä käytetään harvoin.
Synkroniset ohjelmointikielet reaktiivisille järjestelmille: Esterel , Luster .
OpetuskieletPseudo-koodi on yleensä pedagoginen tarkoitukseen.
R , SAS ja xLispStat ovat sekä tilastokieli että ohjelmisto.
Numerical Control (NC) -ohjelmointikieletAutomatisoitu työstökone , tai (NC), tarvitsee ohjelmointikielen suorittaa kääntämällä tai jyrsintään ...
Ohjelmointikielet ja teollisuuden ohjelmoitava logiikka (PLC)Nyquist on synteesi- ja äänianalyysikieli. Pure Data on graafinen musiikinluontiohjelmisto, joka perustuu menettelytapojen ohjelmointikieleen.
Kuusi tutkijaa kolmesta portugalilaisesta yliopistosta suoritti vertailevan tutkimuksen 27 ohjelmointikielestä "Energiatehokkuus ohjelmointikielten välillä". He tarkastelivat virrankulutusta, ajonaikaa ja muistin käyttöä. Saadakseen joukon vertailukelpoisia ohjelmia tutkijat tutkivat tietokonekielen vertailupeliä (CLBG).
Tuloksena oleva taulukko esittää energiankulutuksen (energia), suoritusajan (aika) ja muistin enimmäiskulutuksen (Mb) kokonaistulokset (keskimäärin), jotka on normalisoitu kriteerin tehokkaimpaan kieleen nähden.
Viisi parasta kieltä ovat:
Kunkin kielen suosiota on vaikea mitata; Kuitenkin on TIOBE-indeksi , joka lasketaan kuukausittain ja joka perustuu insinööreille tarkoitettujen koulutusten / kurssien määrään sekä ohjelmointikielelle erikoistuneiden jälleenmyyjien / freelancereiden määrään. Tämä on hajanaisia tietoja, mutta se voi antaa jonkinlaisen kuvan ohjelmoijien mieltymysten suuntauksista.