Anders Sjögren ANSI - standard ?. Anders Sjögren ANSI - standard ? Om man skriver ett bra C-program och kompilerar fram ”exe”-filen så vore det ju trevligt.

Slides:



Advertisements
Liknande presentationer
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Advertisements

Avlusning Debugger (”avlusare”) Breakpoints Watch.
F2 - Intro till Java1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): • Vad behövs för att kunna programmera? • DrJava • Java •
Föreläsning1. • Boken?!?! • Vad är ett program? • Kompilerande-Interpreterande • Programmeringsmiljö • Hello World! • Att programmera och ett enkelt program.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Datavetenskap för teknisk kemi 10p, moment 1
Programstruktur: C för enchipsdatorer
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar -Signaler -Signalhantering.
Funktioner och programorganisation
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
De fundamentala datatyperna
Föreläsning 7 Analys av algoritmer T(n) och ordo
Programmeringsteknik I: F1 1 Föreläsning 1: Intro till kursen och programmering Kursens hemsida Studentportalen.
Operatorer.
Filhantering Grundprincipen för filhantering Öppna filen
PC-teknik Repetition enligt önskemål som inkommit via mail. (täcker alltså inte alla moment i kursen)
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
C-programmering ID120V William Sandqvist Länkad lista
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Att programmera i språket Java
Föreläsning 2 Datalogi för E1 2D1343
INTRODUKTION TILL PROGRAMMERING
Next previous Introduktion till Java Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: OOMPAE 2000.
i olika programmeringsspråk
Java. Kortfattat om Java Syntaxen påminner i hög grad om C++ Stöd för objektorientering Kod kan köras i en virtuell maskin som finns tillgänglig för nästan.
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Repetition inför slutprovet
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Välkommen till Del 1.
Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar.
1. En infrastruktur för programutveckling
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
Modulär programutveckling
Anders Sjögren Pekare. Anders Sjögren Skapa ett program som byter plats på två heltal Pekare.
För utveckling av verksamhet, produkter och livskvalitet. -Algoritmer och Datastrukturer- -Algoritm analys och sökning algoritmer- Kap 5 -Algoritmer och.
Databehandling Ett datorprogram består i huvudsak av
Objektorienterad programmering i Java
Objektorienterad Programmering i C++ I
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Java paket och jar-filer
INTRODUKTION TILL PROGRAMMERING
Anders Sjögren Bitfält exempel Nu kommer ett förbättrat program. Det är funktions- uppdelat och kan lägga till poster som lagras på fil.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Språket för inbyggda system 2
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Introduktion till programmeringsspråket Java -Den allmänna.
Anders Sjögren Filer - långtidslagring. Anders Sjögren Filtyper i DOS talet ett ( intx=1; ) lagrat i en –textfil, (en sekvens av tecken ( bytes )) enligt.
Programmering i C# Laborationer.
Anders Sjögren Deklarationsområde och funktioner.
Föreläsning 2 2D1312 Introduktion till Python Kap 1 och 2 i kursboken.
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
William Sandqvist Funktionsbibliotek När man utvecklat en funktion så långt att den är "färdigutvecklad" kan man lika gärna spara den på.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
OOP&M - teori1 OOP&M – Föreläsning 3 kap 2-4 Repetition Föreläsning-datayper-syntax-tilldelning.
Anders Sjögren Enkelt program med funktion /* two_func.c - a program that uses two functions in one file */ /* from Stephen Prata C Primer Plus ISBN
Anders Sjögren Operatorer. Anders Sjögren Operand(er)
Anders Sjögren Modulär programutveckling. Anders Sjögren Ett programmeringsprojekt, flera personer utvecklar ett program Vi ska utveckla ett ränteberäkningsprogram.
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Anders Sjögren Funktioner något in och något annat ut.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 1 ( ) INNEHÅLL: -Introduktion av kursen -Vad är programmering? -Programmeringsspråk.
Python.
Presentationens avskrift:

Anders Sjögren ANSI - standard ?

Anders Sjögren ANSI - standard ? Om man skriver ett bra C-program och kompilerar fram ”exe”-filen så vore det ju trevligt om det gick att exekvera på flera olika sorters datorer, IBM-PC-typ, MacIntosh, SUN, NEXT etc samt under flera operativsystem DOS, UNIX, OS/2, VMS, AOS, mm. Det finns två faktorer som tyvärr förhindrar detta –processortyp olika processorer tolkar maskinkod (ettor och nollor) olika –operativsystem många av tjänsterna man ber om när man programmerar är tjänster som operativsystemet tillhandahåller och eftersom olika operativsystem fungerar olika så måste tjänsten utföras olika

Anders Sjögren ANSI - standard ? Om man skriver ett bra C-program och kompilerar fram ”exe”-filen så vore det ju trevligt om det gick att exekvera på flera olika sorters datorer, IBM-PC-typ, MacIntosh, SUN, NEXT etc samt under flera operativsystem DOS, UNIX, OS/2, VMS, AOS, mm. Det finns två faktorer som tyvärr förhindrar detta –processortyp olika processorer tolkar maskinkod (ettor och nollor) olika –operativsystem många av tjänsterna man ber om när man programmerar är tjänster som operativsystemet tillhandahåller och eftersom olika operativsystem fungerar olika så måste tjänsten utföras olika Repetition

Anders Sjögren ANSI - standard ? operativsystemtjänst Betrakta följande program. Funktionen printf(...) är en önskan till operativsystemet om att få ”Hello, world ” utskrivet på bildskärmen /*HELLO.C -- Hello, world */ #include int main(void) { printf("Hello, world\n"); return 0; }

Anders Sjögren ANSI - standard ? Det går alltså inte att standardisera en ”exe”- (maskinkods-) fil. Det man kan standardisera däremot är hur källkod skall se ut och här skiljer man på två saker –dels C-språkets syntax, hur man skriver C. –dels på vilka färdiga funktioner ( makro) som skall finnas med i ett standardbibliotek à la ANSI. Varje exekveringsmiljö måste m a o ha sin kompilator

Anders Sjögren ANSI - standard ? exekveringsmiljö ANSI-programmet nedan kompilerat för resp exekverat i –DOS miljö –operativsystem-miljön Windows /*HELLO.C -- Hello, world */ #include int main(void) { printf("Hello, world\n"); return 0; }

Anders Sjögren ANSI - standard ? För att en standardfunktion skall kunna användas krävs att –header-filen ( som är en textfil på samma format som källkodsfilen ) inkluderas i källkoden. Denna fil innehåller önskad funktions deklaration ( eller makro ). –dessutom att funktionens maskinkod ( biblioteksrutiner ) kommer med i ”exe”-filen. Detta sker vid länkningen, mer om detta längre fram. /*HELLO.C -- Hello, world */ #include int main(void) { printf("Hello, world\n"); return 0; }

Anders Sjögren Hur ett program blir till m h a en C-kompilator och länkare Utkast till källkod Papper och penna är en bra början till ett C-program. Kanske utkastet är ett strukturdiagram?

Anders Sjögren Hur ett program blir till m h a en kompilator Utkast till källkod Källkod som text-fil Källkoden skrivs med en Editor eller ordbehandlare in i en text-fil ( ASCII ?)

Anders Sjögren Hur ett program blir till m h a en kompilator Utkast till källkod Källkod som text-fil Kompilator Objektkods-fil (maskinkod) Andra text-filer, t ex (*.h) -filer Preprocessorn Kompilatorn översätter till maskinkod. Kompileringen inleds med preprocessorn som bearbetar, omformar källkodstexten enligt preprocessordirektiven. Inkludering av andra textfiler ( *.h ) sker bl a nu. #include int main(void)

Anders Sjögren Hur ett program blir till m h a länkaren Utkast till källkod Källkod som text-fil Kompilator Objektkods-fil (maskinkod) Andra text-filer, t ex (*.h) -filer Preprocessorn Länkare Biblioteksrutiner, OBJ-filer kanske ur LIB-filer. runtime-system ”EXE” - fil Länkaren sammanfogar maskinkodsfiler (*.obj) till en programfil ( *.exe ) som är exekverbar. Runtime-delen är kod som måste till för att exekveringen skall kunna ske och har inget med programmets uppgift att göra.

Anders Sjögren Hur ett program blir till m h a länkare Utkast till källkod Källkod som text-fil Kompilator Objektkods-fil (maskinkod) Andra text-filer, t ex (*.h) -filer Preprocessorn Länkare Biblioteksrutiner, OBJ-filer kanske ur LIB-filer. runtime-system ”EXE” - fil Vilka filer som skall kompileras resp länkas anges i ett projekt eller projektfil. Länkaren sammanfogar maskinkodsfiler (*.obj) till en programfil ( *.exe ) som är exekverbar. Runtime-delen är kod som måste till för att exekveringen skall kunna ske och har inget med programmets uppgift att göra.

Anders Sjögren Hur ett program blir till, exekvering ”EXE” - fil Utkast till källkod Källkod som text-fil Kompilator Objektkods-fil (maskinkod) Andra text-filer, t ex (*.h) -filer Preprocessorn Länkare Biblioteksrutiner, OBJ-filer kanske ur LIB-filer. runtime-system Operativsystemet laddar primärminnet och startar exekvering Exekvering

Anders Sjögren Hur ett program blir till, exekvering Exekvering Utkast till källkod Källkod som text-fil Kompilator Objektkods-fil (maskinkod) Andra text-filer, t ex (*.h) -filer Preprocessorn Länkare Biblioteksrutiner, OBJ-filer kanske ur LIB-filer. runtime-system Operativsystemet laddar primärminnet och startar exekvering Data in Data ut ”EXE” - fil

Anders Sjögren ANSI - standarden inkluderingsfiler assert.h- programdiagnostik under körning ctype.h- teckentyptester float.h- flyttalsegenskaper och gränser limits.h- numeriska egenskaper och gränser locale.h- anpassning till lokal miljö math.h- matematiska funktioner setjmp.h- icke lokala hopp i program signal.h- hantering av mjukvaravbrott stdarg.h- variabelt antal parametrar stddef.h- grundläggande typer och makron stdio.h- standard in- och utmatning stdlib.h- generellt användbara funktioner med bl a sortering string.h- hantering av textsträngar time.h- hantering av datum och tid Några axplock

Anders Sjögren ANSI - standarden inkluderingsfiler assert.h- programdiagnostik under körning ctype.h- teckentyptester float.h- flyttalsegenskaper och gränser limits.h- numeriska egenskaper och gränser locale.h- anpassning till lokal miljö math.h- matematiska funktioner setjmp.h- icke lokala hopp i program signal.h- hantering av mjukvaravbrott stdarg.h- variabelt antal parametrar stddef.h- grundläggande typer och makron stdio.h- standard in- och utmatning stdlib.h- generellt användbara funktioner med bl a sortering string.h- hantering av textsträngar time.h- hantering av datum och tid assert Description Tests a condition and possibly aborts. assert is a macro that expands to an if statement; if test evaluates to zero, assert aborts the program (by calling abort) and asserts the following a message on stderr Syntax #include void assert(int test); Assertion failed: test, file filename, line linenum

Anders Sjögren ANSI - standarden inkluderingsfiler assert.h- programdiagnostik under körning ctype.h- teckentyptester float.h- flyttalsegenskaper och gränser limits.h- numeriska egenskaper och gränser locale.h- anpassning till lokal miljö math.h- matematiska funktioner setjmp.h- icke lokala hopp i program signal.h- hantering av mjukvaravbrott stdarg.h- variabelt antal parametrar stddef.h- grundläggande typer och makron stdio.h- standard in- och utmatning stdlib.h- generellt användbara funktioner med bl a sortering string.h- hantering av textsträngar time.h- hantering av datum och tid Några funktioner isalnum isalpha isascii iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit toascii tolower toupper

Anders Sjögren ANSI - standarden inkluderingsfiler assert.h- programdiagnostik under körning ctype.h- teckentyptester float.h- flyttalsegenskaper och gränser limits.h- numeriska egenskaper och gränser locale.h- anpassning till lokal miljö math.h- matematiska funktioner setjmp.h- icke lokala hopp i program signal.h- hantering av mjukvaravbrott stdarg.h- variabelt antal parametrar stddef.h- grundläggande typer och makron stdio.h- standard in- och utmatning stdlib.h- generellt användbara funktioner med bl a sortering string.h- hantering av textsträngar time.h- hantering av datum och tid Innehåller bl a funktioner för filhantering. Detta är ämnet för en hel föreläsning

Anders Sjögren ANSI - standarden inkluderingsfiler assert.h- programdiagnostik under körning ctype.h- teckentyptester float.h- flyttalsegenskaper och gränser limits.h- numeriska egenskaper och gränser locale.h- anpassning till lokal miljö math.h- matematiska funktioner setjmp.h- icke lokala hopp i program signal.h- hantering av mjukvaravbrott stdarg.h- variabelt antal parametrar stddef.h- grundläggande typer och makron stdio.h- standard in- och utmatning stdlib.h- generellt användbara funktioner med bl a sortering string.h- hantering av textsträngar time.h- hantering av datum och tid abortlabsrealloc absldiv atexitlfindatofatoi atollsearchbsearchltoa srandcallocstrtod

Anders Sjögren Slut