Ett mänskligt språk för att skapa datorprogram.
Finns hundratals språk, designade med olika syften.
Datorns grundspråk = maskinkod (ettor & nollor).
Exempelbitsekvens: 101000101001101\;1001110110110101
Ett separat verktyg översätter högnivåkod → maskinkod.
Topp-språk 2024: Python, C++, C, Java, C#, JavaScript, Go, Visual Basic, Delphi, Fortran
Python ~ 15\text{–}30\% rating senaste åren.
En följd av instruktioner som datorn ska utföra.
Instruktion = ett antal bitar (noll/ett).
8 bitar (= 1 byte).
När koden lagras direkt som bitar kallas det maskinkod; krävs för att CPU:n ska exekvera.
Tidiga datorer (t.ex. ENIAC, 1946) krävde fysisk omkoppling & manuella binära instruktioner.
Assembler introducerade mnemoteknik (textsymboler):
Ex: LOAD A
, ADD B
, MOV C
Kräver ett översättningsprogram (assembler) för att bli maskinkod.
Fortfarande låg abstraktionsnivå, men lättare än ren binär.
Närmare mänskligt språk ("halvengelska").
Exempel: Python, Java, C#, Pascal, FORTRAN, JavaScript.
Måste översättas av kompilator eller interpretator innan/medan det körs.
Egenskap | Kompilator | Interpretator |
---|---|---|
Översätter | Hela programmet → körbar fil (t.ex. .exe) | Rad-för-rad under körning |
Exekvering | + Mycket snabb (ingen översättning vid körning) | - Långsammare (tolkning pågår) |
Utveckling | - Kompilering tar tid | + Snabba tester, interaktiv REPL |
Felupptäckt | Många fel fångas innan körning | Fel hittas ofta vid körning |
Målgrupp | Stora/krävande program | Nybörjare, skript, prototyper |
Språk som ofta interpreteras: Python, JavaScript, Ruby, shell-språk.
Språk med kompilator: C, C++, C#, Java (byte-kod), Pascal-varianter.
Debugging = processen att hitta & åtgärda fel.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
puts("!!! Hello World!!!");
return EXIT_SUCCESS;
}
Assembler-utdrag (förkortat):
.LC0: .string "!!! Hello World!!!"
main:
pushq %rbp
movq $.LC0, %rdi ; argument till puts
call puts
movl $0, %eax
popq %rbp
ret
Visar översättningskedjan: högnivå → assembler → maskinkod.
Skapat av Guido van Rossum (1991); filändelse .py
.
Kännetecken: enkel syntax, multiparadigm, stort ekosystem.
Kursmål:
Ge stabil grund för vidare studier
Öva praktiskt samtidigt som teoretisk förståelse byggs
Kunskaper överförbara till andra språk
Avancerade matematiska beräkningar
Grafik & webb (t.ex. Django, Flask)
Dataanalys & AI/ML (pandas, NumPy, TensorFlow)
Spelutveckling (Pygame)
Cybersäkerhet / scripts & automation
Python online
WebIDE: "Python Online 1–4" (olika sajter).
Mac/Linux har ofta Python \ge 2.7 förinstallerat.
OneCompiler (https://onecompiler.com)
Stöder 60+ språk, inkluderar populära Python-bibliotek.
Lokal installation
Ladda ned från https://www.python.org
Distribution inkluderar interpretator + standardbibliotek.
IDE-miljöer
Syfte: allt-i-ett (kodning, körning, debugging).
Rekommenderad IDE i kursen: PyCharm.
Andra editor/IDEs:
Visual Studio Code, Sublime Text, Spyder, Jupyter Notebook, Atom, Vim, Emacs, IntelliJ IDEA, Notepad++.
Steg 1: Hämta och installera VS Code.
Steg 2: Öppna Extensions (fyrkants-ikonen) → sök "Python" → klicka Install.
Funktioner: IntelliSense, debugging, terminal, Git-integration, virtuell miljö-hantering.
Vad är ett programspråk?
Resonera kring syfte, abstraktionsnivåer, historisk utveckling.
Vad är ett datorprogram?
Fokusera på instruktioner, bitar, maskinkod.
Vad är assembleringsspråk?
För- & nackdelar jämfört med maskin- och högnivåspråk.
Vad är högnivåspråk?
Läsbarhet, portabilitet, krav på översättning.
Interpreter vs. Kompilator
Identifiera skillnader genom egna exempel.
Maskinkod: datorns internspråk, binärform.
Assembler: lågnivåspråk med mnemotekniska instruktioner; översätts av assembler.
Högnivåspråk: människonära syntax; kräver kompilator eller interpretator.
Kompilator: översätter hela koden till fristående körbar fil; snabb körning.
Interpretator: tolkar raden/statementet vid exekvering; flexibel & interaktiv.
Debugging: systematisk feljakts-process.
IDE: integrerat utvecklingsverktyg som effektiviserar kodskrivning och felsökning.
Etik & praktik: Kursen betonar självständighet (ingen ChatGPT), dokumentation, kodkvalitet och reflektion kring programmeringens påverkan på samhället.