En computer -program er et sæt af instruktioner og operationer beregnet til at blive udført af en computer .
Et program er generelt en del af software, der kan defineres som en samling af digitale komponenter beregnet til at levere en computertjeneste. En software kan omfatte flere programmer. Det findes således i computerenheder ( computer , spilkonsol , pengeautomat osv.), I stykker computerudstyr såvel som i mange elektroniske enheder ( printer , modem , GPS , mobiltelefon , vaskemaskine , apparat. Digitalt foto , TV-dekoder digital, elektronisk indsprøjtning , autopilot ...).
Computerprogrammer er underlagt ophavsret og er underlagt lovgivning svarende til kunstneriske værker.
I 1842 , grevinde Ada Lovelace skaber diagrammer for Analytisk Engine af Charles Babbage . Disse diagrammer betragtes i dag som de første computerprogrammer i verden. Denne teori er imidlertid genstand for kontrovers, fordi Babbage også selv skrev sine første programmer til sin analytiske maskine , selvom flertallet aldrig blev offentliggjort. For eksempel bemærker Bromley eksempler på programmer udarbejdet af Babbage mellem 1837 og 1840: alle hans noter er forud for dem skrevet af Lovelace. Imidlertid blev begrebet programmering og optaget programmering først formuleret teoretisk i 1936 af Alan Turing .
I 1940'erne blev de første computere, som Z3 eller Mark I , oprettet. Computerprogrammer blev derefter designet af analytikere, skrevet af programmører og indtastet af operatører på telex-bånd eller perforerede papkort . At køre et program bestod af at indtaste den tilsvarende strimmel eller stak kort i en elektromekanisk læser.
Det første operativsystem blev udviklet i 1954. Samme år dukkede de første montører op og den første kompilator til Fortran- sproget .
Undervisningen i programmering blev først organiseret blandt computerproducenter og i de første universiteter, hvor disse maskiner blev installeret - fra begyndelsen af 1950'erne i England og USA, derefter i midten af det samme årti i det kontinentale Europa og Japan. Dette er tekniske kurser, men emnets voksende kompleksitet (kompilatorer, systemer) vil gradvist føre til oprettelse af en ny videnskab.
Fremkomsten af struktureret programmering omkring 1970 stærkt forenklet arbejde programmører og gjort det muligt at skabe programmer, der behandles mere og mere komplekse opgaver. Det samme gælder med fremkomsten af objektorienteret programmering mellem 1980 og 1990. I overensstemmelse med sætningen af Edsger Dijkstra : "Fremskridt vil kun være mulig, hvis vi kan tænke på programmer uden at forestille os dem som stykker kode. Eksekverbar". Nye programmerings- eller metaprogrammeringssprog oprettes regelmæssigt for at forenkle og fremskynde mulighederne ved programmering.
Endelig har miniaturisering af computere og generalisering af grafiske grænseflader i vid udstrækning bidraget til demokratisering af brugen af computeren, til det punkt, at generaliseringen af smartphones i 2010'erne giver brugerne mulighed for at køre computerprogrammer permanent.
Den programmering er, startende fra en idé, at lave et værk af refleksion, som førte til skrivning af algoritmer i et programmeringssprog. Programmeringssprog blev oprettet for at lette programmørens arbejde ved at forkorte stien, der går fra ideen til kildekoden.
Programmer oprettes af programmører eller softwareingeniører. Programmører arbejder primært med at skrive programmer, mens softwareingeniører arbejder gennem alle faser af programoprettelsen. De anvender en formel og streng tilgang baseret på industriel teknik og ledelsesteknikker.
Inden du begynder at skrive et program til løsning af et problem, skal programmøren bestemme karakteristika for det problem, der skal løses. Dette gøres i flere trin uafhængigt af det anvendte programmeringssprog. Den almindelige teknik er en udviklingscyklus , der inkluderer trin i definition, design, skrivning, test, installation og vedligeholdelse:
Målet med udviklingscyklussen er at reducere produktionsomkostningerne og samtidig øge programmets kvalitet. De kvaliteter, der søges, er effektivitet, fleksibilitet, pålidelighed, bærbarhed og robusthed. Det skal også være brugervenligt og let at redigere.
Et program forventes at kræve lidt programmeringsindsats, at instruktionerne tager lidt tid og kræver lidt hukommelse, at det kan bruges til mange formål og vil give de forventede resultater uanset forholdene. Ændringer - permanent eller midlertidig - til computersystemet. .
Det forventes også, at den let kan overføres til en anden computermodel end den, den er bygget til, at den giver overbevisende resultater, selv når de indtastede oplysninger er forkerte, at de let kan forstås af en nybegynderbruger, og at kildekoden kan let ændres senere.
Et programmeringssprog er en betegnelse, der bruges til at udtrykke algoritmer og skrive programmer. En algoritme er en proces til opnåelse af et resultat ved en række beregninger, der er beskrevet i form af piktogrammer og enkle termer på et naturligt sprog. Indtil 1950 udtrykte programmører programmer på maskin- eller monteringssprog , sprog der er vanskelige at læse for mennesker, og hvor hver instruktion ikke gør noget, hvilket gjorde arbejdet kedeligt og resultatet udsat for mange fejl. Allerede i 1950 blev programmer beskrevet på forskellige sprog dedikeret til mennesker og mere til maskiner - programmeringssprog - hvilket gjorde det lettere at udtrykke operationer. Programmet blev derefter automatisk oversat til en form, der kunne udføres af computeren.
Efter anmodning udfører computeren programinstruktionerne. Selvom det altid udfører nøjagtigt, hvad der er instrueret og aldrig er forkert, er der tidspunkter, hvor de instruktioner, det udfører, er forkerte som følge af menneskelige fejl, mens du skriver programmet. Programmeringssprog sigter mod at reducere antallet af disse bugs ; disse er dog uundgåelige i programmer på flere tusinde linjer. Et tekstbehandlingsprogram kan bestå af over 750.000 linjer kode, og et operativsystem kan bestå af over 50 millioner linjer. I gennemsnit forbereder, skriver, tester og dokumenterer en programmør ca. 20 programlinjer om dagen, og oprettelsen af store programmer er holdets arbejde og kan tage flere måneder eller endda år.
Programmering er et centralt emne inden for datalogi. Instruktionerne, der skal udføres af en computer, skal kunne udtrykkes på en præcis og utvetydig måde. For at gøre dette kombinerer programmeringssprog læsbarheden af engelsk med nøjagtigheden af matematik. Programmer oprettes af programmører eller softwareingeniører. Oprettelse af et program involverer en række aktiviteter såsom design, skrivning, testning og dokumentation. For at opnå et bedre kvalitetsprogram udføres programmeringsarbejdet efter en systematisk og planlagt proces.
Et programmeringssprog er et ordforråd og et sæt skrivregler, der bruges til at instruere en computer i at udføre bestemte opgaver. De fleste programmeringssprog siges at være på et højt niveau , det vil sige, deres notation er inspireret af naturlige sprog (normalt engelsk).
Processoren er den elektroniske komponent, der udfører instruktioner. Hver processor er designet til at udføre bestemte instruktioner, kaldet maskininstruktioner . Rækken af instruktioner, der er tilgængelige på en processor, danner maskinsprog . For eksempel har Intel 80486- processoren en palette på 342 instruktioner.
Samlingssprog er en tekstlig gengivelse af maskininstruktioner, et lavt niveau sprog , der gør det muligt at udtrykke maskininstruktioner i en symbolsk form, der er lettere at manipulere, hvor der er 1-1 overensstemmelse mellem maskininstruktioner og monteringssprogsinstruktioner.
Programmeringssprog på højt niveau gør det muligt at udtrykke instruktioner på en syntetisk måde og ignorere maskinsprog. Sammenlignet med monteringssprog tillader de strukturer at udtrykkes, tillader programmer at skrives hurtigere med færre instruktioner. Programmer skrevet på sprog på højt niveau er lettere at ændre og bærbare og kan køre med forskellige processorer. Et program, der udtrykkes på et højt sprog og derefter kompileres, er imidlertid mindre effektivt og har flere instruktioner, end hvis det var blevet udtrykt på samlingssprog.
Mellem 1950 og 2000 dukkede mere end 50 programmeringssprog op. Hver bragte en masse nye koncepter, forbedringer og innovationer. Indtil 1950'erne svarede brugen af programmeringssprog til skrivemaskineinstruktioner. Innovationen i 1960'erne var at tillade en notation tæt på matematik til at skrive beregningsinstruktioner. Innovationerne i 1970'erne gjorde det muligt at organisere og sammenlægge den information, der håndteres af programmerne - se datastruktur og kontrolstruktur . Derefter ankom begrebet objekt på udviklingen af programmeringssprog efter 1980.
Nedenfor er Hello-verdensprogrammet udtrykt på Java- programmeringssprog :
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }Det samme program, udtrykt på samlingssproget for x86- processorer :
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 typisk af et sæt procedurer og funktioner . En procedure er en række instruktioner beregnet til at udføre en operation; for eksempel sortering af en liste. En funktion er en række instruktioner beregnet til at producere et resultat; for eksempel en beregning.
En fejl er en buildfejl i et program. Instruktionerne, som computerenheden udfører, stemmer ikke overens med det forventede, hvilket forårsager funktionsfejl og nedbrud. Praksis med computerprogrammering kræver værktøjer til at spore eller undgå fejl eller kontrollere rigtigheden af programmet.
Program implementering er baseret på princippet om lagrede program maskine af John von Neumann : programinstruktionerne udføres af en processor . Denne elektroniske komponent udfører hver programinstruktion ved en række belastnings- / afkodnings- / udførelsesoperationer: instruktionen kopieres først fra hukommelsen til processoren, derefter opdeles den bit for bit for at bestemme den operation, der skal udføres, som i sidste ende udføres . De fleste af operationerne er aritmetiske (addition, subtraktion) eller logiske . Udførelsen af programmer af den centrale processor (engelsk CPU ) styrer totaliteten af de operationer, der udføres af computeren.
Udførelsen af belastnings-dekodnings-udførelsescyklussen er punkteret af et ur, der er forbundet til processoren.
I 2011 tælles den urfrekvens, der understøttes af nutidige processorer, i megahertz eller gigahertz, hvilket svarer til millioner, endda milliarder af cykler pr. Sekund.
Moderne processorer kan behandle flere instruktioner samtidigt: når en instruktion indlæses, indlæser processoren straks den næste instruktion uden at vente på, at instruktionen afkodes og derefter udføres, og processorer kan også indlæse / afkode / udføre flere instruktioner i en. Urcyklus. .
BehandleFor at blive udført skal et program indlæses i maskinens hukommelse . Indlæsning af et program kan enten være automatisk eller programmeret, når computerens primer f.eks. Er interaktiv og udløses af en eksplicit udførelsesrækkefølge for brugeren (en eksplicit kommando, tryk på en knap, en knap, et ikon ...). Afhængigt af arten af den handling, der skal udføres, kan et program udføres ad hoc (udskrivning af en tekst) gentagne gange (opdatering af GPS-koordinater) eller (næsten) permanent (overvågningssensorer).
Et program er en række instruktioner, som entydigt Angiver data repræsentationer og beregninger trin for trin . Instruktionerne er beregnet til at manipulere dataene under udførelsen af programmet. Selve programmet er defineret af en algoritme eller en specifikation . Et program beskriver nøjagtigt de forskellige faser i en algoritme: hvad man skal gøre, hvornår og med hvilken information. Ifølge von Neumann-arkitekturen oprettet i 1945 indlæses et program i computerens hukommelse, som gør det muligt at køre det gentagne gange uden menneskelig indblanding og frem for alt at bruge den samme maskine til at køre så mange programmer, som vi ønsker. Hukommelse dedikeret til programmer er også hukommelse dedikeret til data, hvilket gør det muligt at behandle programmer som data som alle andre (for eksempel at skrive nye programmer på samme måde som man ville skrive et tekstdokument) og derefter behandle dem. .
Programmer kan ikke kun udføres af computere, men af de mange enheder, der er baseret på computerkomponenter - for eksempel nogle husholdningsrobotter, telefoner, faxmaskiner, måleinstrumenter, tv-modtager samt stykker computerhardware. drev, routere, printere, videospilkonsoller, personlige assistenter og pengeautomater. I modsætning til computere indeholder disse enheder ofte ikke et operativsystem, programmer gemmes i enheden under fremstillingen, og programmets udførelseshastighed er ofte af mindre betydning.
Uden kontraindikation udføres instruktionerne i et program efter hinanden på en lineær måde. Programmeringssprog gør det muligt at udtrykke alternativer: En række instruktioner udføres kun, hvis en given betingelse er opfyldt, ellers udføres en anden serie. Programmeringssprog tillader også, at udførelsen af en række instruktioner gentages, indtil en given betingelse er opfyldt.
Udførelsen foregår på en anden måde afhængigt af, om programmeringssprog bruges med en compiler eller en tolk .
Kriterium | Samling | Fortolkning |
---|---|---|
Effektivitet | Native maskinkode
Kan optimeres |
10 til 100 gange langsommere
Opkald til underprogrammer Ingen gevinst på løkker |
Fokus | Fejllink ↔ kompleks kilde | Linkinstruktion ↔ triviel udførelse
Enkle spor og observationer |
Udviklingscyklus | Komplet cyklus med hver ændring:
kompilering, sammenkædning, udførelse |
Meget kort cyklus:
ændre og køre igen |
Moderne computere starter et "master" -program kaldet operativsystemet . Det muliggør udførelse af underrutiner, som derefter kan drage fordel af funktionerne i systemet, og som i visse tilfælde skal tilpasses dette miljø. Moderne operativsystemer gør det muligt samtidigt at køre flere programmer i processen , selv med en enkelt processor: en planlægger (program engelsk : scheduler ) operativsystem afbryder den jævnligt kører programmet at ryste hænder til en anden. Rotationshastigheden giver en illusion om, at programmerne udføres på samme tid.
En underrutine til operativsystemet kan i sig selv være et miljø til udførelse af programmer (med en anden grænseflade ); for eksempel en virtuel maskine .
I lov er et program et skriftligt værk, beskyttet af ophavsret . Dette gælder for programmet, så længe det er gemt permanent, selvom der ikke er nogen udgave. Ophavsret beskytter både kildeprogrammet og det binære program.