380 likes | 525 Views
Hoorcollege 1b. (Game) programmeren. geheugen. processor. om waarden op te slaan. om opdrachten uit te voeren. Gameprogrammeren. Von Neumann’s computer-model (1950):. computer = +. Opdrachten. Opdracht: voorschrift om het geheugen te veranderen
E N D
Hoorcollege 1b (Game)programmeren
geheugen processor omwaardenop teslaan omopdrachtenuittevoeren Gameprogrammeren • Von Neumann’s computer-model (1950): computer=+
Opdrachten • Opdracht:voorschrift om het geheugen te veranderen • Programma:lange reeks opdrachten, die één voor één worden uitgevoerd door de processor opdrachtenstaanzelfook in het geheugen maar veranderenzichzelfniet
Programmeertalen • Programmeertaal:notatie voor programma’s • sinds 1945:4000 verschillende talen gepubliceerd
Geschiedenis van computers, programmeren, games: 1940-45 Z3 (Dld 1941) ENIAC (USA 1943) Colossus (Eng 1943)
Geschiedenis van computers, programmeren, games: 1945-50 • Programmeertaal:Machinetaal Mark-I (Eng 1948) Illiac(USA 1948)
Geschiedenis van computers, programmeren, games: 1950-55 • Programmeertaal:Assembler Univac (1951)
Geschiedenis van computers, programmeren, games: 1955-60 • Programmeertaal:Fortran NCR304 (1957) Zebra (NL, 1958)
Geschiedenis van computers, programmeren, games: 1955-60 Tennis for Two (1958) • Brookhaven National Laboratory, dept. of Energy
Geschiedenis van computers, programmeren, games: 1960-65 IBM • Programmeertaal:Cobol, Algol, Lisp PDP-1
Geschiedenis van computers, programmeren, games: 1965-70 • Programmeertaal:Basic LINC-8 (1966) PDP-8 (1966)
Geschiedenis van computers, programmeren, games: 1970-75 • Programmeertaal:Pascal PDP-11 (1970)
Geschiedenis van computers, programmeren, games: 1970-75 Eerste arcade games Magnavox Odyssey (1972)
Geschiedenis van computers, programmeren, games: 1975-80 • Programmeertaal:Simula Atari (1977) Apple-II (1977)
Geschiedenis van computers, programmeren, games: 1980-85 Commodore64 (1984) Vax-11 (1981) • Programmeertaal:(Objective)C IBM-PC (1981) Donkey Kong (1981)
Geschiedenis van computers, programmeren, games: 1980-85 • Odyssey2, Coleco, Atari 5200 • Commodore 64GS, Nintendo Famicon, Coleco Adam
Geschiedenis van computers, programmeren, games: 1990-95 • Programmeertaal:C++
Geschiedenis van computers, programmeren, games: 1990-95 • Nieuwere consoles (Sega Saturn, Playstation, N64)… • Doom
Geschiedenis van computers, programmeren, games: 1995-2000 • Programmeertaal:Java, JavaScript
Geschiedenis van computers, programmeren, games: 2000-2005 • Programmeertaal:C#PHP
Mach.taal Assembler Fortran Algol Cobol Lisp Basic Databases(periode 3) Pascal Prolog Simula FunctioneelProgrammeren(jaar 2) Web- technologie(jaar 2) (Obj.)C SQL C++ Perl Java Haskell PHP Python Geschiedenis van programmeertalen 1945 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 Game-programmeren JavaScript 2000 C# 2010 2015 Swift
Geheugencapaciteit • 65er jaren: 8 kB RAM ponskaarten • 70er jaren: 16 kB RAM tape • 80er jaren: 64 kB RAM floppy-disk • 85er jaren: 640 kB RAM • 90er jaren: 4 MB RAM harddisk • 95er jaren: 16 MB RAM CD • 00er jaren: 128 MB RAM DVD • 05er jaren: 1GB RAM • 10er jaren: 16GB RAM SSD, “The cloud”
Programmeer-problemen • vroeger:hoe kan ik het geheugen zoefficiënt mogelijk gebruiken? • nu:hoe kan ik die overvloed vangeheugen nog overzien?
Indeling van het geheugen • plaats in het geheugen met een naam • groepje variabelen dat bij elkaar hoort • groepje objectendat bij elkaar hoort variabele object object
Indeling van het programma • voorschrift om hetgeheugen te veranderen • groepje opdrachten dat bij elkaar hoort • groepje methodendat bij elkaar hoort • groepje klassendat bij elkaar hoort opdracht methode klasse namespace
Programmeer-paradigma’s Imperatief Declaratief Assembler Fortran Basic Functioneel Lisp Procedureel Algol Excel Haskell Pascal C Object- georiënteerd Logisch Simula Prolog C++ Java C#
Vertalen 1/5: Assembler • Een assembler vertaalt machine-specifieke broncode naar objectcode,die vervolgens kan worden uitgevoerd .asmsourcecodevoor processor 1 Assembler voor processor 1 .exemachinecodevoor processor 1 .asmsourcecodevoor processor 2 Assembler voor processor 2 .amachinecodevoor processor 2
Vertalen 2/5: Compiler • Een compiler vertaalt de broncodenaar machine-specifieke objectcode,die vervolgens kan worden uitgevoerd .cppsourcecode Compiler voor processor 1 .exemachinecodevoor processor 1 Compiler voor processor 2 .amachinecodevoor processor 2
Vertalen 3/5: Interpreter • Een processor-specifieke interpreterleest de broncode en voert die uit .phpsourcecode Interpreter voor processor 1 Interpreter voor processor 2
Vertalen 4/5: Compiler+Interpr. • Een universele compiler vertaalt de broncode naar een bytecode, die gemakkelijk kan worden geïnterpreteerd .javasourcecode .class bytecode Interpreter voor processor 1 Compiler Interpreter voor processor 2
.amachinecodevoor processor 2 Compiler voor processor 2 Vertalen 5/5: Compiler+Compiler • Een compiler vertaalt de broncode naar een intermediate language , die vervolgens wordt gecompileerd .cssourcecode .il Intermediatelanguage Compiler voor processor 1 .exemachinecodevoor processor 1 Compiler
.amachinecodevoor processor 2 Compiler voor processor 2 Vertalen 5/5: Compiler+Compiler • Een compiler vertaalt de broncode naar een intermediate language , die vervolgens wordt gecompileerd .cssourcecode .il Intermediatelanguage Compiler Compiler voor processor 1 .exemachinecodevoor processor 1 .vbsourcecode Compiler
Programmeer-cyclus Modelleer Specificeer Implementeer Edit Compile Run
Practicum/werkcollege: BBG106/112/175/017/020 Hoorcollege: ANDRO-C101