informatica Welkom! maandag 16 November Les B-1
informatica Module 4.1 Programmeertalen 2 Les B-1
informatica Inhoud van de les Welke lagen in programmeren zijn er? Wat zijn de verschillen in programmeergeneraties? Wat is sourcecode en wat is objectcode? Wat is nodig om een programma te laten draaien? Wat betekent objectgeoriënteerd programmeren? –Wat zijn de begrippen binnen OO en wat betekenen ze? Les B-1 3 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Waarom programmeren? De eerste generatie computers werden geprogrammeerd met kabels en schakelaars. (e.g. de ‘Bombe’) Dat vereist specialistische kennis van het apparaat. Les B-1 4 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Waarom programmeertalen? Geen kennis van het apparaat nodig. Een bewerking kan meerdere malen gebruikt worden. (= hergebruik) Een bewerking kan op meerdere apparaten gebruikt worden. (= portabel) Er worden minder fouten gemaakt. (= debug-tijd) Les B-1 5 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica programmeerlagen in computer Les B Drivers apparaten (muis, printer, etc.) Besturingssysteem (OS) (Windows, Linux) Applicaties (Word, Excel) BIOS, firmware (CPU, geheugen, etc.) Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Programmeertalen Verschillende generatietalen (GL = Generation Language) 1.machinecode 2.assembleertaal 3.procedurele taal ( & object georiënteerd) 4.vierde generatietaal 5.probleemoplossende taal Les B-1 7 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Machinecode (1GL) de computer werkt met bits dus opdrachten weergeven in bits en bytes dit heet machinecode de instructieset is de vertaling van een opdracht naar de hardware …. dit is een lagere programmeertaal (dichtbij de computer) Les B-1 8 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Assembleertaal (2GL) Waarom? Letterinstructies ‘makkelijker’ te onthouden dan cijferinstructies Vertaalprogramma (assembler) zet letterinstructies om in machine-instructie Les B-1 9 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Assembleertaal (2GL) tweede generatie programmeertaal een taal die direct en 1- op-1 naar machinecode wordt vertaalt. dit is een lagere programmeertaal (dichtbij de computer) Les B-1 10 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica procedurele taal (3GL) een hogere programmeertaal procedurele taal = (stapsgewijs voorschrijven van de handelingen en beslissingen) Sourcecode (= broncode) wat de programmeur wil van de computer machine onafhankelijk Objectcode (= doelcode) Ook wel machinecode of machinetaal wat de hardware moet weten machine afhankelijk Les B-1 11 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Middelen bij procedurele taal Debugger Het programma stapsgewijs doorlopen om bugs te vinden Interpreter vertaalt naar doelcode tijdens uitvoering simpel tragere uitvoering weinig geheugenruimte Les B-1 12 Editor hier schrijf je de broncode in (bijv. Notepad of JCreator) Compiler Vertaalt broncode vooraf naar doelcode efficiënt & sneller veel geheugenruimte Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Java als procedurele taal Les B-1 13 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica procedurele taal (3GL) Een aantal 3GL talen: COBOL (.. Business.. ; bij banken etc.) FORTRAN (FORmula TRANslation) BASIC (simpel) ALGOL / PASCAL (educatief) C (krachtig en microprocessor georiënteerd) C++ / Java (object georiënteerd) Les B-1 14 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica vierde-generatietalen (4GL) Talen voor een bepaald doel Hoger abstractieniveau (je programmeert het ‘doel’, niet alles wat nodig is om het doel te bereiken) Voorbeelden: generatoren (DreamWeaver) SQL (Structured Query Language) CSS macro’s (in Word, EXCEL) Les B-1 15 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Tijdlijn van programmeertalen Les B Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80 C# Logo Python Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Andere programmeertalen Veelgebruikt C (of C++) Delphi Visual Basic.NET Java C# Python Les B-1 17 Op het web HTML XHTML –minder fouten JavaScript –programma binnen webpagina PHP –dynamisch –databases Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Beantwoord de vragen op het formulier. Opdracht Les B Drivers apparaten (muis, printer, etc.) Besturingssysteem (OS) (Windows, Linux) Applicaties (Word, Excel) BIOS, firmware (CPU, geheugen, etc.) Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Programmeren op OS De nieuwe(re) programmeertalen worden gemaakt bovenop het besturingssysteem. Maar werken alle programmeertalen wel op elk besturingssysteem? –NEE! Niet allemaal, –maar Java gelukkig wel. ^^ Les B-1 19 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Java Om te programmeren in Java is er software nodig: Programmeertaal Java (JCreator) Hier wordt in geprogrammeerd en vervolgens ‘gecompiled’ naar ‘bytecode’ Java Development Kit (JDK) Een bibliotheek van programmacomponenten Java Virtual Machine (JVM) (of gewoon ‘Java’) Vertaler van ‘bytecode’ in machinecode (oftewel de ‘interpreter’) Les B-1 20 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Schema voor Java Les B-1 21 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Verschil Java / anderen Les B-1 22 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn Java Anderen
informatica objectgeoriënteerde talen Java maakt gebruik van de OO-techniek (Object Oriëntatie) een object de gegevens zijn de kern eigenschappen en bewerkingen worden aan de gegevens gekoppeld natuurlijker en beter te visualiseren makkelijker meerdere programmeurs de compiler verzamelt en verbindt de objecten Les B-1 23 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Begrippen in OO-techniek Klassen –Het bouwplan voor het object (uiterlijk, doel) Objecten –Onderdeel binnen de klasse (erbuiten vaak zelf een klasse) Gegevensleden –Variabelen binnen de klasse Methoden –Functionaliteit binnen de klasse Inkapseling Overerving –Dezelfde attributen behouden binnen een klasse Les B-1 24 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Concreet voorbeeld Klassen –je hebt de klasse ‘auto’ Objecten –persoonsauto, bestelwagen, Gegevensleden –Variabelen binnen de klasse Methoden –repareren –tanken Overerving –elke auto heeft een bouwjaar, merk, kleur, waarde, etc. Les B-1 25 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Voorbeeld Java public class Meubel { public String meubeltekst = "Ik ben een meubelstuk"; public Meubel() { } public class Winkel { public Winkel() { } public static void main(String[] args) { Meubel kast = new Meubel(); Meubel stoel = new Meubel(); stoel.meubeltekst = "Ik ben een stoel !"; System.out.println(kast.meubeltekst); System.out.println(stoel.meubeltekst); System.out.println(kast.meubeltekst); } Les B-1 26 Klasse object (in klasse) gegevenslid Methode Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica probleemoplossende talen (5GL) probleem gericht (niet de uitwerking, maar alleen het probleem programmeren) problemen opdelen in subproblemen, etc. problemen onafhankelijk van elkaar programmeren ingewikkeld, omslachtig, abstract Voorbeelden: PROLOG “Watson” Les B-1 27 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Watson Watson is een zelflerende computer 4 TB aan geheugen en 200 miljoen pagina’s aan informatie. Zelf aanleren waar het beste de informatie te zoeken Won in 2011 spelshow Jeopardy. “Artificial Intelligence?” Les B-1 28 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn
informatica Doelen van de les Welke lagen in programmeren zijn er? Wat zijn de verschillen in programmeergeneraties? Wat is sourcecode en wat is objectcode? Wat is nodig om een programma te laten draaien? Wat betekent objectgeoriënteerd programmeren? –Wat zijn de begrippen binnen OO en wat betekenen ze? Les B-1 29 Inhoud Intro 1GL 2GL 3GL 4GL 5GL Java OO-techn Vragen?