Programmering

Programmering er prosessen med å lage et sett med instruksjoner som forteller en datamaskin hvordan den skal utføre en type oppgave. Men ikke bare handlingen med å skrive kode for datamaskinen eller programvaren å utføre. Den inkluderer også alle nødvendige oppgaver for at koden skal fungere riktig og oppfylle formålet den ble skrevet for. [ 1 ]

Foreløpig er begrepet programmering nært forbundet med å lage dataapplikasjoner og videospill . I denne forstand er det prosessen der en person utvikler et program ved å bruke et verktøy som lar dem skrive koden (som kan være på ett eller flere språk, som C++ , Java og Python , blant mange andre) og et annet som er i stand til å "oversette" det til det som er kjent som maskinspråk , som mikroprosessoren kan "forstå" . [ 2 ]

Hvordan et program fungerer

For å lage et program og få det tolket og utført av datamaskinen, må instruksjonene være skrevet på et programmeringsspråk .

Språket som forstås av en datamaskin er kjent som maskinkode . Den består av sekvenser med grunnleggende instruksjoner som prosessoren gjenkjenner, kodet som strenger med tallene 1 og 0 ( binært system ). I de tidlige dagene av databehandling ble programmering gjort direkte i maskinkode. Å skrive programmer som dette var for komplisert, det var også vanskelig å forstå og vedlikeholde dem når de først ble skrevet. Over tid ble det utviklet verktøy for å gjøre jobben enklere.

Tidlige forskere som jobbet i området bestemte seg for å erstatte sekvensene av enere og nuller med mnemonics , som er en forkortelse for funksjonen til en prosessorinstruksjon. For å legge til kan for eksempel bokstaven A i det engelske ordet add brukes . De skapte dermed en familie av språk på høyere nivå, som er kjent som assembly language eller ganske enkelt assembly (på engelsk, assembly ). Over tid inkorporerte montører flere fasiliteter, men holdt alltid en direkte korrespondanse med prosessorinstruksjonene. På et konseptuelt nivå er altså programmering i assembly veldig lik programmering i maskinspråk, bare på en mer brukervennlig måte.

Etter hvert som kompleksiteten til oppgavene utført av datamaskiner økte, viste monteringsspråket begrensninger. For å lage et program måtte du vite i detalj hvordan datamaskinen der den skulle kjøre fungerte, hvilke instruksjoner den ga og hvordan du bruker dem. Noen ganger var instruksjonene for grunnleggende, for eksempel kunne det være en for å legge til to tall, men ikke å multiplisere, og da var det nødvendig å programmere en algoritme som ville utføre multiplikasjonen basert på mer grunnleggende instruksjoner. Andre ganger var måten å bruke instruksjonene på tungvint. Dessuten, hvis en annen modell av datamaskin ble brukt, måtte programmet i mange tilfeller skrives om med andre instruksjoner. Det neste trinnet var å lage språk på høyt nivå .

Når du er ferdig med å skrive et program, må du på en eller annen måte oversette det til maskinspråk, som er det eneste prosessoren forstår. Denne oppgaven er automatisk, ved hjelp av et tilleggsprogram som tar den skrevne koden og behandler den. Det er forskjellige tilnærminger til denne behandlingen. Den klassiske tilnærmingen kalles kompilering : programmet tar kode på ett språk og genererer kode på det andre; oversetterprogrammet kalles en kompilator. Generelt snakker vi om kompilering og kompilatorer når kildespråket er høyt nivå; hvis oversettelsen er fra assemblerspråk, heter det assembly og programmet heter assembler (vi må skille assemblerspråk fra assemblerprogram; på engelsk er det tydeligere, de er henholdsvis assemblerspråk og assembler ). [ 3 ] Det er vanligvis en post - kompileringsfase kalt kobling . Programmer kan skrives i separate deler og kan også bruke ressurser fra biblioteker . Koblingen, utført av et program kalt en linker, kombinerer alle komponentene og genererer dermed et komplett kjørbart program.

I noen programmeringsspråk kan en annen tilnærming brukes som ikke krever kompilering og kobling: et program kalt en tolk leser koden og utfører handlingene som programmet ville gjort i farten. Generering av separat kode unngås, og opplevelsen er at koden kjøres på høynivåspråket, selv om prosessoren ikke forstår den innfødt.

Leksikon og programmering

Programmering er styrt av regler og et mer eller mindre redusert sett med ordrer, uttrykk, instruksjoner og kommandoer som har en tendens til å ligne et avgrenset naturlig språk (på engelsk ); og at de også har det spesielle ved en redusert tvetydighet.

I programmeringsspråk skilles ulike elementer ut, inkludert språkets eget leksikon og semantiske og syntaktiske regler. Innenfor leksikonet brukes generelt symboler og ord med spesifikke funksjoner innenfor språket. Disse ordene er vanligvis lånt fra engelsk og kan ikke brukes annerledes: de er såkalte reserverte ord . En annen særegenhet ved språk er at de lar programmerere bruke kommentarer: setninger eller avsnitt uten funksjonalitet i programmet, som kompilatorer eller tolker forkaster og kun er ment å leses av folk; På denne måten kan du legge igjen forklaringer som hjelper den som leser koden til å forstå den. [ 4 ]

Programmer og algoritmer

En algoritme er en entydig , begrenset og ordnet sekvens av instruksjoner som skal følges for å løse et gitt problem. [ 1 ] Et program implementerer og inneholder vanligvis en eller flere algoritmer. En algoritme kan uttrykkes på forskjellige måter: i grafisk form, som et flytskjema , i kodeform som pseudokode eller et programmeringsspråk, i forklarende form.

Programmer er ofte delt inn i mindre deler, kalt moduler, slik at den algoritmiske kompleksiteten til hver del er mindre enn for hele programmet, noe som bidrar til å forenkle programutviklingen. Dette er en mye brukt praksis og er kjent som "progressiv raffinering".

Ifølge Niklaus Wirth er et program bygd opp av algoritmer og datastrukturer .

Programmering kan følge mange tilnærminger, eller paradigmer , det vil si ulike måter å formulere løsningen på et gitt problem på. Noen av hovedprogrammeringsparadigmene er:

Samling

Programmet skrevet i et programmeringsspråk på høyt nivå (lett forståelig av programmereren ) kalles et kildeprogram og kan ikke kjøres direkte på en datamaskin. Det vanligste alternativet er å kompilere programmet for å få en objektmodul, men også, hvis språket støtter det, kan det kjøres direkte, men bare gjennom en tolk. Noen språk, som BASIC , har begge utførelsesformene, noe som gjør det enklere å feilsøke og teste programmet.

Kildekoden til programmet må gjennomgå en oversettelsesprosess for å konvertere den til maskinspråk eller til en mellomkode, og dermed generere en modul kalt "objekt". Denne prosessen kalles kompilering .

Vanligvis involverer opprettelsen av et kjørbart program (en typisk .exe for Microsoft Windows eller DOS ) to trinn: det første trinnet kalles kompilering (korrekt sagt) og oversetter kildekoden, skrevet i et programmeringsspråk og lagret i en fil. tekst , til lavnivåkode (vanligvis objektkode, ikke direkte til maskinspråk). Det andre trinnet kalles kobling der lavnivåkoden generert fra alle filene og underprogrammene som har blitt sendt til kompilering kobles og koden til de nødvendige funksjonene som ligger i eksterne biblioteker legges til, slik at den kjørbare kan kommunisere direkte med operativsystemet, og oversetter dermed objektkoden til maskinkode og genererer en kjørbar modul.

Disse to trinnene kan gjøres separat, ved å lagre utdataene fra kompileringsfasen i objektfiler (en typisk .o for Unix , .obj for MS-Windows og DOS); å koble dem sammen i senere faser, eller opprette den kjørbare direkte; slik at byggefasen kan lagres midlertidig. Et program kan ha deler skrevet på flere språk, for eksempel Java , C , C++ og assembler , som kan kompileres uavhengig og deretter kombineres for å danne en enkelt kjørbar modul .

Programmering og programvareutvikling

Det er en tendens til å identifisere prosessen med å lage et dataprogram med programmering, noe som er sant når det gjelder små programmer for personlig bruk, og som er langt fra virkeligheten når det gjelder store prosjekter.

Prosessen for å lage programvare, fra et teknisk synspunkt , inkluderer minimalt følgende trinn:

  1. Erkjenne behovet for et program for å løse et problem eller identifisere muligheten for å automatisere en oppgave.
  2. Samle programkravene . Det skal være klart hva programmet skal gjøre og hva det trengs til.
  3. Gjennomføre analyse av programkrav. Det skal være tydelig hvilke oppgaver programmet skal utføre. Tester som kontrollerer programmets gyldighet kan spesifiseres på dette stadiet.
  4. Design arkitekturen til programmet. Programmet må brytes ned i deler av håndterbar kompleksitet.
  5. Implementer programmet. Det består i å utføre et detaljert design, fullt spesifisere hele driften av programmet, hvoretter kodingen (selve programmeringen) skal være umiddelbar.
  6. Prøv programmet. Sjekk at de består tester som er definert i kravanalysen.
  7. Distribuer (installer) programmet. Det består i å sette programmet i drift sammen med nødvendige komponenter (databaser, kommunikasjonsnettverk, etc.).

Programvareteknikk fokuserer på planleggings- og designtrinnene til programmet, mens tidligere (håndverksprogrammering) bestod realiseringen av et program nesten bare av å skrive koden, med kun kunnskap om kravene og med en beskjeden analysefase. og design .

Historiske referanser

Arbeidet til Ada Lovelace , datter av Anabella Milbanke Byron og Lord Byron , for Babbages maskin ga henne tittelen som verdens første kvinnelige dataprogrammerer , selv om Babbage aldri fullførte konstruksjonen av maskinen. Navnet på programmeringsspråket Ada ble valgt som en hyllest til denne programmereren.

Programmeringsmål

Programmering må søke å oppnå kvalitetsprogrammer. For dette etableres en rekke faktorer som bestemmer kvaliteten på et program. Noen av de viktigste kvalitetsfaktorene er som følger:

Programvarens livssyklus

Begrepet programvarelivssyklus beskriver utviklingen av programvare, fra startfasen til sluttfasen, inkludert dens funksjonelle tilstand. Hensikten er å definere de ulike mellomfasene som kreves for å validere utviklingen av applikasjonen, det vil si å garantere at programvaren oppfyller kravene til applikasjonen og verifisering av utviklingsprosedyrene: det sikres at metodene som brukes er hensiktsmessige . Disse metodene stammer fra at det er svært kostbart å rette opp feil som oppdages sent i implementeringsfasen (riktig programmering), eller enda verre, i funksjonsfasen. I livssyklusmodellen forsøkes feil oppdages så snart som mulig, og derfor lar den utviklere konsentrere seg om kvaliteten på programvaren, på implementeringstidene og på de tilhørende kostnadene. Den grunnleggende livssyklusen til en programvare består av minst følgende prosedyrer:

Rekkefølgen og tilstedeværelsen av hver av disse prosedyrene avhenger av typen livssyklusmodell som er avtalt mellom klienten og utviklingsteamet. Når det gjelder fri programvare, er det en mye mer dynamisk livssyklus, siden mange programmerere jobber samtidig med å utvikle sine elimineringer.

Se også

Referanser

  1. ↑ a b Juganaru Mathieu, Mihaela (2000). Introduksjon til programmering. . Larousse - Patria Redaksjonsgruppe. ISBN  978-607-438-920-3 . OCLC  923747840 . Hentet 2022-04-25 . 
  2. JOSÉ LUIS LÓPEZ (Digital markedsføring_) (10. desember 2019). «Lær på Internett» . Hentet 10. desember 2019 . 
  3. Laboda, Xavier; Josep Galimany, Rosa Maria Pena, Antoni Gual (1985). "Programvare". Praktisk databibliotek . Barcelona: Ocean-Success Editions, SA 
  4. ^ "Programmeringsspråk" . 

Eksterne lenker