Computerprogrammer #
Et computerprogram (eller software) er en udvidelse af computerens elektroniske kredsløb (eller hardware) i form af grundlæggende instruktioner, som kan udføres af computeren.
Den moderne computers 🖳 success skyldes, at den er programmerbar.
Før den programmerbare computer byggede man programmer med elektronik: Programmet og computeren var den samme ting.
I dag udføres computerprogrammer af et værtssystem, som kan være enten hardware eller et andet computerprogram.
Man kan overordnet skelne mellem 3 forskellige typer programmer: Operativsystemer, applikationer og programmeringsværktøjer.
Operativsystemer #
Et operativsystem (eller et styresystem) er et program, som kommunikerer med computerens hardware 🎮 på vegne af en applikation.
Formålet med et operativsystem er at fritage udviklere af applikationer fra den byrde, det er at forstå, hvordan man kommunikerer med hardware.
Der findes mange producenter og typer af hardware.
Et program som er bygget til at køre på macOS, kan køre på alle Apple enheder, som kan køre macOS. Det er praktisk og gør computeren anvendelig til mange formål.
Operativsystemer består også af computerprogrammer, som giver brugeren adgang til et filsystem og gør det muligt for brugeren at køre sine egne applikationer.
Eksempler på operativsystemer #
Applikationer #
En applikation (eller et anvendelsesprogram) er et program, som anvendes af en bruger.
Man kategoriserer applikationer ud fra den rolle, som de spiller i sammenhæng med andre computerprogrammer og brugeren:
Interaktive applikationer #
En interaktiv applikation er en applikation, som brugeren interagerer med, mens applikationen kører.
En grafisk applikation som f.eks. Microsoft Word er en interaktiv applikation:
Brugeren interagerer ved at kigge på skærmen 🗔, pege og klikke med musen 🖰 og taste på tastaturet 🖮.
En interaktiv applikation er typisk grafisk, hvor brugergrænsefladen er en mere eller mindre symbolsk grafisk repræsentation af programmets tilstand.
Eksempler på interaktive applikationer #
Ikke-interaktive applikationer #
En applikation, som brugeren ikke interagerer med, mens den kører, kaldes en ikke-interaktiv applikation.
Mange tekstbaserede applikationer er ikke-interaktive. En tekstbaseret applikation er beregnet på at køre i en tekstbaseret skal.
Eksempel på en ikke-interaktiv applikation #
Her er et eksempel på programmet ls
som viser filerne i en mappe, som hedder computerprogrammer
:
Klient #
En klient er et computerprogram, som gør det nemmere at kommunikere med et andet computerprogram.
F.eks. er browseren et klientprogram; browseren kommunikerer med en webtjeneste på vegne af en bruger via netværket.
Agenter #
En agent er en ikke-interaktiv applikation, som kan handle på brugerens vegne.
Et eksempel på en agent kunne være en browserudvidelse, som tjekker links for malware.
Tjenester #
En tjeneste er et computerprogram, som brugeren interagerer med ved at bruge et klientprogram.
Et eksempel på en tjeneste er Googles søgemaskine, som man interagerer med gennem browseren.
Programmer til at skrive programmer #
Den tredje kategori af computerprogrammer er programmer til at skrive andre programmer.
Man skriver programmer ved at skrive et program, som skriver et program.
Det første program inde i computeren 💻 består af elektronik (også kaldet hardware). Elektronikken kan køre programmer.
Input til det første program er et program.
Det første programs opgave er ikke at producere et output, men bare at køre det næste program, som typisk er operativsystemet. Det næste program kører det næste program og så videre.
Et computerprogram som producerer et computerprogram, oversætter en beskrivelse af computerprogrammet, som mennesker har nemt ved at forstå, til en beskrivelse som computerens hardware har nemt ved at forstå.
Denne form for computerprogrammer kaldes oversættere.
Et computerprogram som udfører et andet computerprogram, fortolker en beskrivelse af et computerprogram og udfører umiddelbart instruktionerne i beskrivelsen.
Denne form for computerprogrammer kaldes fortolkere.
Når man skriver programmer, så anvender man enten et oversætter- eller et fortolkerprogram sammen med et programmeringssprog.
Eksempel på et fortolkerprogram #
JavaScript er et fortolket programmeringssprog.
Alle browsere har indbygget en JavaScript-fortolker.
Websites kan sende JavaScript-programmer til brugernes browsere, som så udfører programmerne.
JavaScript-programmer kan interagere med browseren gennem en række standardiserede web API'er.