Ohjelmointikieli

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.

Määritelmä

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.

käyttää

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.

Yleiset käsitteet

Ohjelmointikieli perustuu joukkoihin käsitteisiin, kuten käskyihin, muuttujiin, tyyppeihin, menettelyihin tai toimintoihin, joita voidaan käyttää primitiivinä algoritmien kehittämiseen.

Ohje

Tietokoneelle annettu määräys.

Muuttuja

Nimi, jota käytetään ohjelmassa viittaamaan ohjelman manipuloimiin tietoihin.

Vakio

Nimi, jota käytetään viittaamaan pysyvään arvoon.

Kirjaimellinen ilmaisu

Ohjelmassa kokonaan mainittu arvo.

tyyppi

Jokaisella 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.

Tietorakenne

Tyypillinen tapa järjestää tietojoukko muistiin, mikä vaikuttaa niiden manipulointiin käytettyihin algoritmeihin. Yleisiä rakenteita ovat taulukot , tietueet , luettelot , pinot , jonot ja puut .

Julistus

Ohjelma 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ät

Eri 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.

Moduulit

Ohjelmointikielet 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 .

Paradigmat

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)

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.

Vakuutus

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ä.

Toimiva

Toiminnallinen 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.

Logiikka

Loogisen 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.

Kohdistettu

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.

Kilpailija

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 .

Visuaalinen

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 .

Tapahtuma

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ä.

Web-pohjainen

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ä.

Toteutus

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:

kääntäjä

Ohjelma , joka muuntaa tekstin kieli, jonka avulla sen suorittamisen, kuten konekielellä , tavukoodiksi tai konekielellä .

tulkki

Ohjelma, joka suorittaa pyydetyt ohjeet. Sillä on sama rooli kuin koneella, joka tunnistaa tämän kielen.

Konekieli

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

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ä.

Lisäominaisuudet

Ajonaikaiset ohjelmointikielet toteuttavat lisäominaisuudet, kuten roskien keräilijä , poikkeusten, tapahtumien tai säikeiden käsittely sekä myöhäinen sidonta ja pohdinta .

Roskienkerääjä

Mekanismi, joka poistaa käyttämättömät muuttujat ja vapauttaa heille varatun muistitilan.

poikkeus

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.

Tapahtuma

Menettely, joka suoritetaan, kun tietty ehto täyttyy. Tapahtumia käytetään erityisesti graafisten rajapintojen toteuttamiseen .

Yksi lanka

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ä.

Myöhäinen sidonta

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öä.

heijastus

Ohjelman mahdollisuus hankkia tietoja omista ominaisuuksistaan. Ohjelmointikielen ohjeiden avulla ohjelma voi hankkia tietoja itsestään ja käsitellä niitä kuten tietoja.

monadin

Rakenne, jonka avulla voidaan manipuloida välttämättömiä piirteitä puhtailla toiminnallisilla kielillä.

Historiallinen

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.

Käyttää

Voimme myös luokitella ohjelmointikielet niiden käytön mukaan, koska monet kielet ovat erikoistuneet tiettyyn sovellukseen tai toimialueeseen.

Dynaamisten verkkosivujen kielet

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 .

Teoreettiset ohjelmointikielet

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.

Eksoottiset kielet

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.

Erikoiskielet

  • ABEL , PLD-levyjen elektronisen ohjelmoinnin kieli
  • CDuce , korkeamman asteen toiminnallinen kieli asiakirjojen käsittelyyn XML-muodossa.
  • Backus-Naurin (BNF) muoto, ohjelmointikielien virallistaminen
  • PROMELA , asynkronisten järjestelmien määrityskieli
  • VRML , kuvaus kolmiulotteisista kohtauksista
Synkroniset kielet

Synkroniset ohjelmointikielet reaktiivisille järjestelmille: Esterel , Luster .

Opetuskielet

Pseudo-koodi on yleensä pedagoginen tarkoitukseen.

  • Logo on toimiva kieli, joka on helppo oppia.
  • 1990-luvulla BASIC- kieltä suositeltiin usein aloittamaan. Sillä oli kuitenkin maine edistämään huonoja ohjelmointitottumuksia.
  • Processing on yksinkertaistettu kieli, joka perustuu Java. Se mahdollistaa ikkunoitujen sovellusten kehittämisen kaikentyyppisissä tietokoneissa, joissa on Java.
  • Arduino on yksinkertaistettu kieli, joka perustuu C / C ++. Se mahdollistaa sähköisten projektien helpon kehittämisen Arduino-levyltä (AVR).
  • ArduinoEDU on vielä yksinkertaisempi kieli ranskaksi suurille aloittelijoille, jotka käyttävät C / C ++ / Arduino-kieltä. Se mahdollistaa hyvin yksinkertaisen sähköisten projektien kehittämisen Arduino-levyiltä (AVR).
  • Flowgorithm on työkalu tietokoneohjelmien luomiseen ja graafiseen muokkaamiseen Algorigrammin muodossa.
Digitaalisen elektroniikan kielet
  • Verilog , VHDL  : laitteistokuvauskielet, jotka mahdollistavat digitaalisen elektroniikan (logiikkaporttien kuvaukset) syntetisoinnin ja niiden toiminnan simuloinnin
  • SystemC , korkeamman tason laitteistokuvauskieli kuin edelliset ja mahdollistaa nopeamman simuloinnin
Tilastojen kielet

R , SAS ja xLispStat ovat sekä tilastokieli että ohjelmisto.

Numerical Control (NC) -ohjelmointikielet

Automatisoitu työstökone , tai (NC), tarvitsee ohjelmointikielen suorittaa kääntämällä tai jyrsintään ...

Ohjelmointikielet ja teollisuuden ohjelmoitava logiikka (PLC) Ääniohjelmointikielet

Nyquist on synteesi- ja äänianalyysikieli. Pure Data on graafinen musiikinluontiohjelmisto, joka perustuu menettelytapojen ohjelmointikieleen.

Esitykset

Vertaileva tutkimus 27 kielellä

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:

Energiankulutukseen

  • C: 1,00
  • Ruoste: 1,03
  • C ++: 1,34
  • Ada: 1.70
  • Java: 1.98

Ajon ajaksi

  • C: 1,00
  • Ruoste: 1,04
  • C ++: 1,56
  • Ada: 1.85
  • Java: 1.89

Maksimaalinen muistin kulutus


Suosio

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.

Huomautuksia ja viitteitä

  1. (in) Maurizio Gabbrielli ja Simone Martini , Ohjelmointikielet: periaatteet ja Paradigms , Springer ,2010[ yksityiskohdat painoksista ] ( ISBN  9781848829138 )
  2. (en) Kenneth C. Louden ja Kenneth A. Lambert , Ohjelmointikielet: periaatteet ja käytännöt , Cengage Learning,2011[ yksityiskohdat painoksista ] ( ISBN  9781111529413 )
  3. (en) William Sims Bainbridge , Berkshire Encyclopedia of Human-computer Interaction , voi.  2, Berkshire Publishing Group LLC,1994[ yksityiskohdat painoksista ] ( lue verkossa )
  4. (in) David Anthony Watt ja William Findlay , ohjelmointikieli suunnitelmasta , John Wiley & Sons,2004( ISBN  9780470853207 )
  5. Marcel Cori ja Jean-Marie Marandin , "  Kielitiede kosketuksissa tietojenkäsittelytieteen kanssa: kieliopien rakentamisesta rakennuskielioppiin  ", Histoire Épistémologie Langage , voi.  23, n o  1,2001, s.  49–79 ( DOI  10.3406 / hel.2001.2817 , luettu verkossa , käytetty 13. lokakuuta 2020 )
  6. Ensimmäiset askeleet kohti tietokoneohjelmien yleistä ontologiaa, Pascal Lando, Frédéric Fürst, Gilles Kassel ja Anne Lapujade, "Tietotekniikan 18. frankofonipäivät, Grenoble: Ranska (2007)", katso kohta 3.2 . Ensimmäinen tietokonekielikategoria on yleiskäyttöisten tietokoneiden kielet ( englanti  : yleiskäyttöiset tietokonekielet ), toisin sanoen Turingin täydelliset kielet ... Ohjelmointikielet ( englanti  : ohjelmointikielet ) tai korkean tason kielet ovat kaikki yleisiä kieliä
  7. (en) Seema Kedar , ohjelmointimallit ja metodologia , tekniset julkaisut,2002[ yksityiskohdat painoksista ] ( ISBN  9788184312966 )
  8. (en) ITL Education Solutions Limited, Johdatus tietotekniikkaan , Pearson Education India, 2005 ( ISBN  9788177581188 )
  9. (in) RJ Barlow ja AR Barnett laskentatehoa Tutkijat: Principles of ohjelmointi Fortran 90 ja C ++ , John Wiley and Sons, 1998 ( ISBN  9780471955962 )
  10. (en) Seema Kedar ja Sanjay Thakare , ohjelmointikielten periaatteet , tekniset julkaisut,2009[ yksityiskohdat painoksista ] ( ISBN  9788184315776 )
  11. (sisään) ADA-ohjelmointi , Tyrarex Press ( ISBN  9781449991999 )
  12. (in) Krishnamurthy, Tietorakenteet Käytä C , Tata McGraw-Hill Education, 2008 ( ISBN  9780070669192 )
  13. , Arvind Kumar Bansal, Johdatus ohjelmointikieleihin , CRC Press - 2013 ( ISBN  9781466565142 )
  14. (en) Jana , Java ja olio-ohjelmoinnin paradigma , PHI Learning Pvt. Oy.,2008[ yksityiskohdat painoksista ] ( ISBN  9788120327757 )
  15. "  von Neumannin arkkitehtoninen malli  " , interstices.info-sivustolla (katsottu 13. lokakuuta 2020 )
  16. Abstrakti kone toiminnalliselle paradigmalle voi olla Krivinen kone .
  17. Olemmeko puhtaassa toiminnallisessa vai puhtaassa logiikassa.
  18. Seuraava selvitys on yhteenveto tarpeesta johtuvasta valituksesta.
  19. (in) DA Godse ja AP Godse , Tietokoneen arkkitehtuuri & Organization , teknisten julkaisujen,2007( ISBN  8184317719 )
  20. Dhamdhere , järjestelmien ohjelmointi ja käyttöjärjestelmät , Tata McGraw-Hill Education,2011( ISBN  9780074635797 )
  21. (in) Tmh, tietojenkäsittelytiede Vii (Tn) , Tata McGraw-Hill Education, 2007 ( ISBN  9780070668034 )
  22. (en) Michael L.Scott, ohjelmointikielen käytännöt , Morgan Kaufmann, 2009 ( ISBN  9780123745149 )
  23. (sisään) Ian Griffiths, Matthew Adams, .Net Windows Forms in a Nutshell , O'Reilly Media, Inc., 2003 ( ISBN  9780596003388 )
  24. (in) Raghavan, kääntäjän suunnittelun prin , Tata McGraw-Hill Education, 2010 ( ISBN  9780070144712 )
  25. (in) Diomidis Spinellis ja Georgios Gousios, kaunista arkkitehtuuria: Johtava ajattelijat paljastaa piilotetut Kauneus ohjelmistojen suunnitteluun , O'Reilly Media, Inc., 2009 ( ISBN  9780596517984 )
  26. (in) Chris Smith, Ohjelmointi F # , O'Reilly Media, Inc., 2009 ( ISBN  9780596153649 )
  27. (in) Jeff Friesen, Geoff Friesen Java esimerkissä 2 , onko Publishing 2002 ( ISBN  9780789725936 )
  28. (in) Harold Davis, Visual Basic 6 Secrets Harold Davis 1998 ( ISBN  9780764532238 )
  29. (in) Brent B. Welch, Ken Jones, Jeffrey Hobbs, käytännön ohjelmointia Tcl ja Tk , Prentice Hall Professional, 2003 ( ISBN  9780130385604 )
  30. (in) Sibsankar Haldar, Alex A. Aravind, käyttöjärjestelmät , Pearson Education India - 2010 ( ISBN  9788131730225 )
  31. (in) Amit Singh, Mac OS X Sisäosat: Systems Approach , Addison-Wesley Professional, 2007 ( ISBN  9780321278548 )
  32. (in) Kishori Sharan, valjastaminen Java 7: Kattava lähestymistapa oppimiseen Java 7 , Kishori Sharan, 2011 ( ISBN  9781466244641 )
  33. Ohjelmointi: tutkimus paljastaa eniten energiahimoisia kieliä

Katso myös

Aiheeseen liittyvät artikkelit

Ulkoiset linkit