En datamaskin program er et sett med instruksjoner og operasjoner som skal utføres av en datamaskin .
Et program er vanligvis en del av programvaren som kan defineres som en samling digitale komponenter ment å gi en datatjeneste. En programvare kan inneholde flere programmer. Det finnes således i datamaskiner ( datamaskin , spillkonsoll , minibank, etc.), i deler av datautstyr , så vel som i mange elektroniske enheter ( skriver , modem , GPS , mobiltelefon , vaskemaskin , apparat. Digitalt bilde , Digital TV-dekoder , elektronisk injeksjon , autopilot ...).
Dataprogrammer er underlagt copyright og er underlagt lovgivning som ligner kunstneriske verk.
I 1842 opprettet grevinnen Ada Lovelace diagrammer for den analytiske motoren til Charles Babbage . Disse diagrammene anses i dag å være de første dataprogrammene i verden. Imidlertid er denne teorien gjenstand for kontrovers fordi Babbage også skrev sine første programmer for sin analytiske maskin selv , selv om flertallet aldri ble publisert. For eksempel bemerker Bromley eksempler på programmer utarbeidet av Babbage mellom 1837 og 1840: alle notatene hans er forut for de skrevet av Lovelace. Begrepet programmering og innspilt programmering ble imidlertid først formulert teoretisk i 1936 av Alan Turing .
På 1940-tallet ble de første datamaskinene opprettet , som Z3 eller Mark I. Dataprogrammer ble deretter designet av analytikere, skrevet av programmerere og skrevet av operatører på kassetter av telex eller perforerte pappkort . Å kjøre et program besto av å legge inn den tilsvarende stripen eller kortbunken i en elektromekanisk leser.
Det første operativsystemet ble utviklet i 1954. Samme år dukket de første montørene opp og den første kompilatoren for Fortran- språket .
Læringen om programmering ble først organisert blant dataprodusenter og ved de første universitetene der disse maskinene ble installert - fra begynnelsen av 1950-tallet i England og USA, deretter i midten av samme tiår i det kontinentale Europa og Japan. Dette er tekniske kurs, men den økende kompleksiteten i faget (kompilatorer, systemer) vil gradvis føre til konstitusjonen av en ny vitenskap.
Fremveksten av strukturert programmering rundt 1970 forenklet i stor grad arbeidet til programmerere og gjorde det mulig å lage programmer som håndterte mer og mer komplekse oppgaver. Det samme gjelder fremveksten av objektorientert programmering mellom 1980 og 1990. I samsvar med uttrykket til Edsger Dijkstra : "Fremgang vil bare være mulig hvis vi kan tenke på programmer uten å forestille oss dem som kodestykker. Kjørbare". Nye programmerings- eller metaprogrammeringsspråk opprettes regelmessig for å forenkle og akselerere mulighetene som programmeringen gir.
Endelig har miniatyrisering av datamaskiner og generalisering av grafiske grensesnitt i stor grad bidratt til demokratisering av bruken av datamaskinen, til det punktet at generalisering av smarttelefoner i 2010-årene tillater brukere å kjøre dataprogrammer permanent.
Den programmering er, fra en idé, for å gjøre en jobb for refleksjon som førte til skriving av algoritmer i et programmeringsspråk. Programmeringsspråk ble opprettet for å lette arbeidet til programmereren ved å forkorte banen som går fra ideen til kildekoden.
Programmer er laget av programmerere eller programvareingeniører. Programmører jobber primært med å skrive programmer mens programvareingeniører jobber gjennom alle stadier av programopprettelsen. De bruker en formell og streng tilnærming basert på industriell engineering og ledelsesteknikker.
Før du begynner å skrive et program for å løse et problem, må programmereren bestemme egenskapene til problemet som skal løses. Dette gjøres i flere trinn uavhengig av hvilket programmeringsspråk som brukes. Den vanlige teknikken er en utviklingssyklus , som inkluderer trinn for definisjon, design, skriving, testing, installasjon og vedlikehold:
Målet med utviklingssyklusen er å redusere produksjonskostnadene samtidig som kvaliteten på programmet økes. Kvaliteten som søkes er effektivitet, fleksibilitet, pålitelighet, bærbarhet og robusthet. Det skal også være brukervennlig og enkelt å redigere.
Det forventes at et program krever lite programmeringsinnsats, at instruksjonene tar liten tid og krever lite minne, at det kan brukes til mange formål og vil gi de forventede resultatene uavhengig av forholdene. Endringer - permanent eller midlertidig - i datasystemet. .
Det forventes også at den lett kan overføres til en annen datamodell enn den den er bygget for, at den gir overbevisende resultater selv når den oppgitte informasjonen er feil, at den lett kan forstås av en nybegynner. kildekoden kan enkelt endres senere.
Et programmeringsspråk er en notasjon som brukes til å uttrykke algoritmer og skrive programmer. En algoritme er en prosess for å oppnå et resultat ved en rekke beregninger, beskrevet i form av piktogrammer og enkle termer på et naturlig språk. Fram til 1950 uttrykte programmerere programmer på maskin- eller monteringsspråk , språk som er vanskelige å lese for mennesker og hvor hver instruksjon gjør lite, noe som gjorde arbeidet kjedelig og resultatet utsatt for mange feil. Allerede i 1950 ble programmer beskrevet på forskjellige språk dedikert til mennesker og mer til maskiner - programmeringsspråk - som gjorde operasjonene lettere å uttrykke. Programmet ble deretter automatisk oversatt til et skjema som kunne utføres av datamaskinen.
På forespørsel vil datamaskinen utføre programinstruksjonene. Selv om den alltid utfører nøyaktig det som er instruert og aldri er galt, er det tider når instruksjonene den utfører er gale som et resultat av menneskelige feil mens du skriver programmet. Programmeringsspråk tar sikte på å redusere antallet av disse feilene ; disse er imidlertid uunngåelige i programmer med flere tusen linjer. Et tekstbehandlingsprogram kan lages av over 750 000 linjer med kode, og et operativsystem kan lages med over 50 millioner linjer. I gjennomsnitt forbereder, skriver, tester og dokumenterer en programmerer omtrent 20 programlinjer per dag, og opprettelsen av store programmer er arbeidet til teamene og kan ta flere måneder eller til og med år.
Programmering er et sentralt emne innen informatikk. Instruksjonene som skal utføres av en datamaskin må kunne uttrykkes på en presis og utvetydig måte. For å gjøre dette kombinerer programmeringsspråk lesbarheten i engelsk med matematikkens nøyaktighet. Programmer er laget av programmerere eller programvareingeniører. Å lage et program innebærer en rekke aktiviteter som å designe, skrive, teste og dokumentere. For å oppnå et bedre kvalitetsprogram gjennomføres programmeringsarbeidet i henhold til en systematisk og planlagt prosess.
Et programmeringsspråk er et vokabular og et sett med skriveregler som brukes til å instruere en datamaskin om å utføre bestemte oppgaver. De fleste programmeringsspråk sies å være på høyt nivå , det vil si at deres notasjon er inspirert av naturlige språk (vanligvis engelsk).
Prosessoren er den elektroniske komponenten som utfører instruksjoner. Hver prosessor er designet for å utføre visse instruksjoner, kalt maskininstruksjoner . Utvalget av instruksjoner tilgjengelig på en prosessor danner maskinspråk . For eksempel har Intel 80486- prosessoren en palett på 342 instruksjoner.
Monteringsspråk er en tekstlig fremstilling av maskininstruksjoner, et lavnivåspråk , som gjør at maskininstruksjoner kan uttrykkes i en symbolsk form som er lettere å manipulere, hvor det er en 1-1 samsvar mellom maskininstruksjoner og monteringsspråkinstruksjoner.
Programmeringsspråk på høyt nivå gjør at instruksjonene kan uttrykkes på en syntetisk måte, og ignorerer maskinspråket. Sammenlignet med monteringsspråk, lar de strukturer uttrykkes, lar programmer skrives raskere, med færre instruksjoner. Programmer skrevet på høyt nivå språk er lettere å endre og bærbare, og kan kjøres med forskjellige prosessorer. Et program uttrykt på høyt nivå språk og deretter kompilert er imidlertid mindre effektivt og har flere instruksjoner enn om det hadde blitt uttrykt på monteringsspråk.
Mellom 1950 og 2000 dukket det opp mer enn 50 programmeringsspråk. Hver brakte mange nye konsepter, forbedringer og innovasjoner. Fram til 1950-tallet lignet bruken av programmeringsspråk på skrivemaskininstruksjonene. Innovasjonen på 1960-tallet var å tillate en notasjon nær matematikk for å skrive beregningsinstruksjoner. Innovasjonene på 1970-tallet gjorde det mulig å organisere og samle informasjonen som håndteres av programmene - se datastruktur og kontrollstruktur . Da ankomsten av begrepet objekt påvirket utviklingen av programmeringsspråk etter 1980.
Nedenfor er Hello-verdensprogrammet uttrykt i Java- programmeringsspråk :
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }Det samme programmet, uttrykt på monteringsspråket til x86- prosessorer :
main proc jmp debut mess db 'Hello world!$' debut: mov dx, offset mess mov ah, 9 int 21h ret main endp cseg ends end mainEt program består vanligvis av et sett med prosedyrer og funksjoner . En prosedyre er en rekke instruksjoner ment for å utføre en operasjon; for eksempel å sortere en liste. En funksjon er en serie instruksjoner som skal produsere et resultat; for eksempel en beregning.
En feil er en byggefeil i et program. Instruksjonene som datamaskinen utfører, samsvarer ikke med det som forventes, og forårsaker funksjonsfeil og krasj. Utøvelsen av dataprogrammering krever verktøy for å spore opp eller unngå feil, eller verifisere riktigheten av programmet.
Program gjennomføring er basert på prinsippet om lagrede programmet maskin av John von Neumann : program instruksjoner utføres av en prosessor . Denne elektroniske komponenten utfører hver programinstruksjon etter hver rekke last / dekoder / utfør operasjoner: instruksjonen kopieres først fra minnet til prosessoren, deretter brytes den ned bit for bit for å bestemme operasjonen som skal utføres, som til slutt utføres . De fleste av operasjonene er aritmetiske (tillegg, subtraksjon) eller logiske . Utførelsen av programmer av den sentrale prosessoren (engelsk CPU ) styrer totaloperasjonen som utføres av datamaskinen.
Utførelsen av belastnings-dekoder-utfør-syklusen blir tegnet av en klokke som er koblet til prosessoren.
I 2011 telles klokkefrekvensen som støttes av moderne prosessorer i megahertz eller gigahertz, noe som tilsvarer millioner, til og med milliarder sykluser per sekund.
Moderne prosessorer kan behandle flere instruksjoner samtidig: når en instruksjon lastes inn, laster prosessoren umiddelbart neste instruksjon uten å vente på at instruksjonen skal dekodes og deretter utføres, og prosessorer kan også laste / dekode / utføre flere instruksjoner i en. .
ProsessFor å kunne kjøres, må et program lastes inn i maskinens minne . Lasting av et program kan enten være automatisk eller programmert når primeren på datamaskinen, for eksempel, er interaktiv og utløses av en eksplisitt utførelsesrekkefølge for brukeren (en eksplisitt kommando, trykk på en knapp, en knapp, et ikon ...). Avhengig av arten av handlingen som skal utføres, kan et program utføres ad hoc (utskrift av tekst), gjentatt (oppdatering av GPS-koordinater) eller (nesten) permanent (overvåkningssensorer).
Et program er en rekke instruksjoner som entydig måte spesifiserer data representasjoner og beregninger trinn for trinn . Instruksjonene er ment å manipulere dataene under gjennomføringen av programmet. Selve programmet er definert av en algoritme (r) eller av en spesifikasjon . Et program beskriver nøyaktig de forskjellige fasene i en algoritme: hva du skal gjøre, når og med hvilken informasjon. I følge von Neumann-arkitekturen som ble opprettet i 1945, lastes et program inn i minnet på datamaskinen, noe som gjør det mulig å kjøre det gjentatte ganger uten menneskelig inngripen, og fremfor alt å bruke samme maskin til å kjøre så mange programmer vi ønsker. Minne dedikert til programmer er også minne dedikert til data, som gjør det mulig å behandle programmer som data som alle andre (for eksempel å skrive nye programmer på samme måte som man ville skrevet et tekstdokument), og deretter behandle dem. .
Programmer kan utføres ikke bare av datamaskiner, men av de mange enhetene som er basert på datamaskinkomponenter - for eksempel noen husholdningsroboter, telefoner, faksmaskiner, måleinstrumenter, fjernsynsmottaker, samt deler av maskinvare. stasjoner, rutere, skrivere, videospillkonsoller, personlige assistenter og minibanker. I motsetning til datamaskiner inneholder disse enhetene ofte ikke et operativsystem, programmer lagres i enheten under produksjon, og hastigheten på programutførelsen er ofte av mindre betydning.
Uten kontraindikasjon blir instruksjonene til et program utført etter hverandre, på en lineær måte. Programmeringsspråk gjør det mulig å uttrykke alternativer: En serie instruksjoner utføres bare hvis en gitt betingelse er oppfylt, ellers blir en annen serie utført. Programmeringsspråk gjør det også mulig å gjenta en rekke instruksjoner til en gitt betingelse er oppfylt.
Utførelsen foregår på en annen måte avhengig av om programmeringsspråket brukes med en kompilator eller en tolk .
Kriterium | Samling | Tolkning |
---|---|---|
Effektivitet | Innfødt maskinkode
Kan optimaliseres |
10 til 100 ganger tregere
Ringer underprogrammer Ingen gevinst på løkker |
Fokus | Feilkobling ↔ kompleks kilde | Linkinstruksjon ↔ triviell utførelse
Enkle spor og observasjoner |
Utviklingssyklus | Komplett syklus med hver modifikasjon:
kompilering, lenking, utførelse |
Svært kort syklus:
endre og kjøre på nytt |
Moderne datamaskiner starter opp et "master" -program som heter operativsystemet . Det tillater utføring av underrutiner som deretter kan dra nytte av funksjonene som tilbys av systemet, og som i visse tilfeller må tilpasses dette miljøet. Moderne operativsystemer tillater samtidig kjøre flere programmer i prosessen , selv med en enkelt prosessor: en planlegger (program engelsk : scheduler ) operativsystem avbryter regelmessig kjører programmet til å håndhilse på hverandre. Rotasjonshastigheten gir en illusjon om at programmene blir utført samtidig.
En underrutine til operativsystemet kan i seg selv være et miljø for å utføre programmer (med et annet grensesnitt ); for eksempel en virtuell maskin .
I lov er et program et skriftlig verk, beskyttet av copyright . Dette gjelder programmet så lenge det er lagret permanent, selv om det ikke er noen utgave. Copyright beskytter både kildeprogrammet og det binære programmet.