Algemene Informaticale informatie

09-12-2009
Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.Samenvatting Hoofdstuk 5.2

1 - PSD     © Instruct


Programma Structuur Diagrammen (PSD’s)
 Er zijn verschillende schematechnieken waarmee je bruikbare schema’s kunt opstellen. Een daarvan is het Programma Structuur Diagram, afgekort tot PSD.

Een Programma Structuur Diagram staat ook bekend onder de naam Nassi-Shneiderman Diagram.

Een PSD is een schema dat de samenhang – de structuur – van instructies binnen een programma weergeeft. PSD’s bestaan uit:

rechthoeken
driehoeken
tekst
Je moet ze beschouwen als voorbereiding op het coderen in een programmeertaal. Ze zijn programmeertaalonafhankelijk. Bovendien gelden er geen strenge taalregels; de probleemoplossing staat centraal.

Algoritme
We spreken in dit verband wel van eenalgoritme. De algoritme om van een probleem tot een programma te komen, ziet er als volgt uit:

probleemstelling
analyse
schematische oplossing
het maken van de sourcecode
compileren
Voor alle duidelijkheid: het schrijven van opdrachten in een programmeertaal is zo ongeveer de laatste stap in het systeemontwikkelingsproces. Eerst moet de programmeur op een gestructureerde wijze de oplossing van een probleem bedenken. PSD’s vormen hierbij een hulpmiddel.


 

Het programma Struktograaf is een hulpmiddel voor het tekenen van PSD's:
www.sichemsoft.nl

Hier vind je een freeware-programma met dezelfde functionaliteit als Struktograaf:
eii.ucv.cl

 

Programma Structuur Diagrammen (PSD’s) met Struktograaf
 Basisstructuren
Bij PSD’s zijn er slechts drie basisstructuren. Als deze op de juiste manier worden gecombineerd, kun je hiermee elk willekeurig computerprogramma schrijven. De basisstructuren zijn:

sequentie
iteratie
selectie
Deze structuren worden ook wel aangeduid met de termen opeenvolging, herhaling en keuze. Bij de behandeling van deze structuren, gaan we uit van een eenvoudig probleem: het bakken van een ei. Niet voor niets wordt het ontwikkelen van een computerprogramma wel eens vergeleken met een recept uit een kookboek!
  

 

 


--------------------------------------------------------------------------------

 

 


2 - Sequentie     © Instruct

  Sequentiële opdrachten worden van boven naar beneden één voor één uitgevoerd:

 


Het bakken van een ei kan in een PSD als volgt worden weergegeven:

 


Hoe gedetailleerd een schema is, hangt af van de gebruiker. Iemand die al vaker iets gekookt of gebakken heeft, zal voldoende hebben aan de handeling ‘vuur aansteken’. Voor iemand die dit voor het eerst doet, zouden we het schema zo kunnen uitbreiden:

 

  

 

 


--------------------------------------------------------------------------------

 

 


3 - Iteratie     © Instruct

 Voorbeeld: ei bakken
Vaak moeten in programma’s bepaalde onderdelen herhaald worden. Iets dergelijks geldt bij het bakken van een ei. Stel dat er in de pan maar één gebakken ei past. Als je meer eieren wilt bakken, hoef je de eerste en de laatste stap uit het schema niet bij elk nieuw ei opnieuw te doen, maar de tussenliggende stappen moeten wel voor elk ei uitgevoerd worden. In het schema geef je dit aan door middel van een iteratie.

Er zijn twee soorten iteraties:

iteratie met controle achteraf
iteratie met controle vooraf
We geven beide vormen als volgt weer.

Controle vooraf

  Controle achteraf
 


Controle vooraf
In het voorbeeld van het gebakken ei kun je vooraf en achteraf controleren of je het gewenste aantal eieren gebakken hebt; we gaan even uit van drie stuks. Bij controle vooraf ontstaat het volgende PSD:

 


Controle achteraf
Bij controle achteraf krijg je het volgende PSD:

 


Bij controle achteraf wordt de herhaling minstens één keer uitgevoerd. Dit is een verschil ten opzichte van de controle vooraf. 
  

 

 


--------------------------------------------------------------------------------

 

 


4 - Selectie     © Instruct

  Een derde programmastructuur is de selectie. Dit houdt in dat het programmaverloop zich splitst op grond van de vraag of wel of niet aan een bepaalde voorwaarde is voldaan. Afhankelijk van het antwoord wordt gestuurd naar de ene serie opdrachten of naar de andere serie.

In een PSD geef je dit weer door middel van een driehoek. Deze wordt gevolgd door twee kolommen. In de ene kolom staat wat het programma moet doen als de voorwaarde wel geldt, in de andere wanneer deze niet geldt.

 
  Voorbeeld: ei bakken
Als je een ei gaat bakken kan het zijn dat het vuur niet meer aangestoken hoeft te worden. Je geeft dat als volgt weer:

 


Nu is dit natuurlijk een heel eenvoudig keuzevoorbeeld. Het is ook denkbaar dat er zich, nadat een keuze gemaakt is, weer een nieuw ‘keuzeprobleem’ voordoet. Kijk eens naar het volgende voorbeeld.

 
 
 
  Voorbeeld: toegangsprijs
Het gaat om het bepalen van de toegangsprijs voor een pretpark. De normale prijs bedraagt tien euro. Kinderen tot twaalf jaar en ouderen vanaf zestig jaar betalen de helft. Er zijn dus twee keuzes te maken, zoals het volgende schema laat zien.

 


Ten slotte
Je hebt nu voorbeelden gezien van de drie basisstructuren van PSD’s. Het lijkt misschien onwaarschijnlijk, maar met deze structuren kun je in principe de werking van elk programma beschrijven, hoe ingewikkeld dat ook is. Dat komt doordat elke rechthoek van een structuur zelf weer uit andere structuren mag bestaan:

in het gedeelte dat herhaald wordt, mag een keuzediagram voorkomen;
de vakken van een keuzediagram mogen nieuwe keuzen bevatten;
enzovoort.
 

Het nalopen van een PSD     © Instruct

   Om inzicht te krijgen in de werking van een PSD en om te controleren of het schema juist is, is het noodzakelijk om de opdrachten na te lopen. Daarbij worden de opdrachten stuk voor stuk uitgevoerd. Dit heeft uiteraard alleen zin als je dat nauwkeurig doet. Je moet daarbij alle opdrachten in de juiste volgorde uitvoeren en elke verandering in waarden op papier bijhouden. (Denk bijvoorbeeld aan het aantal te bakken eieren.)

Ooggetuigenverslag
Zo’n controle wordt wel een ooggetuigenverslag genoemd. Het doel is tweeledig:

Als de werking van het PSD bekend is: controleren of het PSD juist is.
Als de werking van het PSD onbekend is: onderzoeken wat het PSD doet.
Om de controle uit te voeren is het niet nodig dat je de werking van het PSD al van tevoren doorgrondt. Als voorbeeld nemen we het volgende PSD, waarvan nog niet bekend is wat het doel ervan is.

 


Dit is een vrij eenvoudig PSD, maar het gaat om het principe. Je ziet eerst twee sequentie-opdrachten. Het blijkt dat het hierbij gaat om iets wat op het scherm afgedrukt moet worden:

een waarschuwing dat een bestand al onder een bepaalde naam op schijf aanwezig is
de vraag of deze naam desondanks gehandhaafd moet blijven
Daaronder staat een iteratie met een controle achteraf. Het programma moet als het ware ‘herhaaldelijk’ wachten totdat de gebruiker een J of een N indrukt.

Het PSD eindigt met een selectie: drukt de gebruiker op de J-toets, dan kan worden overgegaan tot opslaan. In alle andere gevallen gebeurt er niets. Dit betekent dat de gebruiker uitsluitend op de J kan drukken om het bestand onder dezelfde naam op te slaan. Dit is de beste methode om te voorkomen dat het bestand ongewild overschreven wordt.
  

 

 

09-12-2009 om 14:30 geschreven door mankuiper  

0 1 2 3 4 5 - Gemiddelde waardering: 1/5 - (1 Stemmen)
Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.Samenvatting Hoofdstuk 5.1

Programmeertalen in historisch perspectief     © Instruct


Artikel van Automatisering Gids:
"Vrouwen programmeren beter"


 Programmeertalen worden wel ingedeeld in vijf hoofdcategorieën. Deze indeling geeft niet alleen de chronologische volgorde weer, maar ook een toenemende gebruikersvriendelijkheid. We onderscheiden:

Machinecode
Assembleertalen
Hogere programmeertalen
Vierde-generatietalen
Objectgeoriënteerde talen
Hoewel de eerste twee categorieën vandaag de dag voor de gemiddelde gebruiker geen grote rol spelen omdat ze voor hem verborgen blijven, gaan we hier toch even op in.
 
1 - Machinecode     © Instruct


De kleinste geheugeneenheid is de bit. Een bit is een binair getal (binary digit), dat twee waarden kan hebben: 0 of 1. Alles in het interne geheugen, maar ook op externe geheugenmedia, wordt binair vastgelegd. Dit betekent dus dat ook een programma in binaire vorm wordt opgeslagen. Dit noemen we de machinecode. Elk type processor heeft een eigen manier, de instructieset, om de machinecode te ‘lezen’.

De allereerste computers werden in machinecode geprogrammeerd. Het bedieningspaneel van de computer bevatte een lange reeks schakelaars. De programmeur voerde de opdracht in door de juiste schakelaars omhoog of omlaag (dat is een 1 of een 0) te zetten, waarna de opdracht in het geheugen werd opgeslagen. Dat was eentonig werk, waarbij bovendien gemakkelijk fouten werden gemaakt.

 De bedieningspanelen van de ENIAC.

In die begintijd stelde een programma weinig voor, de programma’s waren nog niet zo omvangrijk. Bovendien waren ze sterk gekoppeld aan de computer waarvoor ze waren geschreven. Een programmeur was al apetrots als hij de computer zo in kon stellen dat die de vierkantswortel van een getal van vijf cijfers ging berekenen…

Machinetalen zijn programmeertalen van de eerste generatie. Ze worden tot de lagere programmeertalen gerekend. Lager wil in dit geval zeggen: dicht bij de processor.

Een opdracht in machinetaal om twee getallen op te tellen, kan als volgt luiden:

1010 11001
1011 11010
1100 11011
  

 

 


--------------------------------------------------------------------------------

 

 


2 - Assembleertaal     © Instruct


Veel informatie over assembler:
webster.cs.ucr.edu

 Ook assembleertaal is een lagere programmeertaal. Het verschil met machinecode is dat er gebruik wordt gemaakt van gemakkelijker te onthouden lettercodes in plaats van nullen en enen. Een speciaal vertaalprogramma, assembleerprogramma genaamd, dient dan om de lettercodes om te zetten in machine-instructies. Dat blijft onder alle omstandigheden nodig, want uiteindelijk is dat voor een computer de enige verstaanbare taal.

Overigens is ‘gemakkelijker te onthouden’ maar betrekkelijk. Je moet denken aan combinaties die uit enkele letters bestaan, bijvoorbeeld:

LIR zou kunnen staan voor load into register (haal waarde vanuit het geheugen in het rekenregister),
AC voor add constant (tel constante op)
PIM voor put into memory (zet inhoud van rekenregister op een geheugenplaats)
 Een voorbeeld van programmacode in assembler.

Een opdracht in assembleertaal om twee getallen op te tellen, kan als volgt luiden:

LOD Y
ADD Z
STR X


Geheugenplaatsen
Een bijkomend voordeel voor de programmeur is dat hij niet langer geheugenplaatsen hoeft bij te houden. Het vertaalprogramma regelt de plaatsing van de variabele in het geheugen. De programmeur hoeft alleen maar de naam te noemen en niet het nummer van de geheugenplaats.

Assembleertaal is een taal van de tweede generatie. Ondanks het feit dat assembleertaal verder van de processor af staat dan machinetaal, spreken we nog wel van een machinegeoriënteerde taal.

Het schrijven van programma’s in assembleertaal is een zeer tijdrovende aangelegenheid, die meestal lange, onoverzichtelijke programma’s oplevert. Er wordt daarom alleen gebruik gemaakt van een assembleertaal als het programma afgestemd moet worden op de specifieke kenmerken van een processor, bijvoorbeeld in embedded systems.
Je moet dan denken aan de processors (microcontrollers) in apparaten als koffieautomaten en thermostaten. Dit is een veelvoorkomende toepassing van een assembleertaal.
 
 
Hogere programmeertalen     © Instruct

   De volgende grote stap in de ontwikkeling van programmeertalen werd gezet toen het mogelijk werd om verschillende machinetaalopdrachten te combineren in één programmaopdracht. Deze programmaopdracht benadert al veel meer de menselijke taal dan assembleertaal.

Bij hogere programmeertalen – programmeertalen van de derde generatie – hoeft de programmeur geen kennis te hebben van de eigenschappen van de processor. De programmeur schrijft stapsgewijs de procedure (regels) voor die de computer moet volgen om het programma uit te voeren. We spreken daarom ook wel van procedurele talen.

Ook bij deze hogere programmeertalen worden de instructies uiteindelijk weer vertaald naar machinecode. Hiervoor dient een speciaal vertaalprogramma, compiler geheten.

Compiler
Een compiler is kort gezegd een vertaalprogramma dat de programmaregels (de zogeheten sourcecode of broncode) omzet in machine-instructies (de objectcode of doelcode).

De programmaopdrachten in een programmeertaal van de derde generatie zijn machine-onafhankelijk. In het ideale geval kan dezelfde broncode zonder aanpassingen worden gebruikt op een computer met een andere processor. De compilers voor de desbetreffende taal zijn wél machine-afhankelijk. Ze zetten de broncode om in opdrachten voor een bepaalde processor of een bepaald besturingssysteem.

Voorbeelden
Er zijn tientallen derde-generatietalen. Ze werden vaak ontwikkeld voor een bepaald toepassingsgebied. De bekendste zijn:
 

Enkele websites:
www.cobug.com (COBOL gebruikersgroep)
fortran.domeintje.net (Fortran)
www.lysator.liu.se (C)


Artikel van Computable:
"Cobol is nog lang niet afgeschreven"

 FORTRAN, ontwikkeld voor technische en wetenschappelijke publicaties.

COBOL, vroeger een populaire programmeertaal voor administratieve toepassingen. In de bank- en verzekeringswereld zijn overigens nog steeds veel COBOL-programma’s in gebruik.

C, een nog altijd veelgebruikte taal voor het ontwikkelen van systeem- en applicatiesoftware; het besturingssysteem UNIX is ontwikkeld in C.
 
 Pascal, een taal die helpt bij het ontwikkelen van goed gestructureerde programma’s.
 Een voorbeeld van een statement in Pascal.


De opdracht in COBOL om twee getallen op te tellen, luidt:

COMPUTE X = Y + Z
  

 

Vierde-generatietalen     © Instruct


Artikel over 4GL:
www.computable.nl

 In talen van de vierde generatie (4GL) worden de programmaopdrachten steeds krachtiger. De meeste talen van deze generatie zijn niet-procedureel; ze zijn eerder probleemgericht. Dit wil zeggen dat de programmeur moet aangeven welk doel hij voor ogen heeft en dat de computer daarbij bepaalt welke reeks instructies daarvoor nodig zijn. Deze talen zijn weer een stap verder verwijderd van de computer.

De hoge verwachtingen die men had van vierde-generatietalen zijn niet uitgekomen. Een algemeen toepasbare vierde-generatietaal levert onhandelbaar grote programma’s op, omdat de software veel ballast bevat. De vierde-generatiesoftware die het programma maakt, begrijpt natuurlijk niet echt wat er moet gebeuren en neemt ‘voor de zekerheid’ allerlei opdrachten en voorzieningen op. Een menselijke programmeur zou een meer afgewogen keuze maken.

Hulpmiddelen
Om deze reden beperkt men zich liever tot vierde-generatiehulpmiddelen. Met deze hulpmiddelen (Engels: tools) kan men snel een toepassing of een bepaald gedeelte van een toepassing genereren. Een voorbeeld van zo’n hulpmiddel is een schermgenerator, waarmee op eenvoudige wijze de layout van invulschermen kan worden bepaald. Verder zijn er rapportgeneratoren, waarmee men aan de hand van gegevens uit een database snel een overzicht kan produceren.

Ook macro’s die in applicaties als Microsoft Word en Excel gemaakt kunnen worden en vraagtalen alsSQL worden tot de vierde-generatiehulpmiddelen gerekend.

Met SQL kun je onder meer gericht selecties maken in een database. 
  

 

1 - Objectgeoriënteerde talen     © Instruct

 Procedures versus objecten 

Artikel van Infoworld:
"25 fatale programmeerfouten"


Procedurele talen
Programma’s die geschreven worden in procedurele talen (van de derde generatie), zoals Pascal, voeren bewerkingen uit op afzonderlijke gegevens. Het komt regelmatig voor dat in programma’s bepaalde handelingen op meerdere plaatsen uitgevoerd moeten worden, bijvoorbeeld het sorteren van getallen. Voor die handelingen kunnen aparte programmaatjes worden gemaakt: procedures.

Doordat in een programma naar een procedure kan worden verwezen, is het niet nodig om de afzonderlijke opdrachten telkens opnieuw uit te schrijven. Omvangrijke programma’s blijven door het gebruik van procedures dus veel overzichtelijker.

OO-talen
Objectoriëntatie, vaak afgekort tot OO, is een techniek die voortbouwt op de techniek van het werken met procedures. Bij OO wordt uitgegaan van de gegevens als kern. De verschillende verschijningsvormen van het gegeven worden eraan gekoppeld; deze zijn afhankelijk van het gebruik (het proces). De processen worden in gang gezet naar aanleiding van boodschappen van andere objecten. Zo ontstaat een object, waarin gegevens en bijbehorende instructies zijn samengevoegd.

Voor het gebruik van een object in een programma hoeft een programmeur niet te weten hoe het object werkt. Bij gebruik van het object hoeft hij alleen de rol te kennen die het object binnen het programma kan spelen. Binnen het programma functioneert het object als een soort ‘black box’. Veel meer dan bij de procedurele software-ontwikkeling wordt een programma dus beschouwd als samenhangende zelfstandige eenheden.

 Een voorbeeld van het object leerling met een aantal methoden.

Een beschrijving van de OO-techniek wordt algauw tamelijk abstract. We zullen proberen de theorie met een voorbeeld te verduidelijken.

Voorbeeld:leerlingenadministratie
Neem de leerlingenadministratie van een school eens in gedachten. Daar werkt men met zaken als vak, docent, leerling, les en toets. De administratie beschikt per leerling over een aantal gegevens:

naam
adres
geboortedatum
rapportcijfers, enzovoort
Bovendien voert de administratie regelmatig bewerkingen op de leerlinggegevens uit: de namen moeten afgedrukt worden, de adresgegevens moeten gewijzigd kunnen worden, enzovoort. Objecten bestaan uit een set gegevens (naam, adres, geboortedatum) en een serie handelingen die op de gegevens uitgevoerd kunnen worden. Dit is dus de hiervoor besproken combinatie van data en bijbehorende instructies.

In de terminologie van OO spreken we over methoden (‘methods’) in plaats van over handelingen.

  
  Voordelen
 
Als voordelen van objectoriëntatie kunnen we noemen:

snellere ontwikkelingstijd door hergebruik van programmamodules;
minder fouten in programmacode;
betere onderhoudbaarheid van programma’s doordat duidelijker is wat elk deel van de software doet;
betere uitwisselingsmogelijkheden als gevolg van vastgestelde standaards.

  
  Problemen
 
Helaas verloopt de ontwikkeling van objectgeoriënteerde programma’s in de praktijk niet zonder problemen. Een paar belangrijke hindernissen bij de ontwikkeling van dit soort programma’s zijn:

Omzetten is moeilijk
De praktische onmogelijkheid om procedurele programma’s om te zetten naar OO-programma’s. Dit betekent dat veel programma’s opnieuw geschreven zouden moeten worden in een objectgeoriënteerde versie. Omdat er nog zeer veel programma’s in omloop zijn die zijn geschreven in procedurele talen, zou het verwijderen van deze programma’s een enorme kapitaalvernietiging betekenen.

Tekort aan programmeurs
De geringe beschikbaarheid van programmeurs met voldoende OO-kennis.

  

 

Allerlei interessant Java-materiaal:
www.programmersheaven.com

Sun Developer Network:
java.sun.com Tekort aan hulpmiddelen
Het ontbreken van voldoende hulpmiddelen die programmeurs kunnen ondersteunen bij hun werk. Bovendien is er lange tijd geen geschikte systeemontwikkelingsmethodiek voorhanden geweest. Zonder deze methodiek is het heel lastig om complexe programma’s te maken.
Met de komst van Java zijn enkele van deze knelpunten opgelost. Sinds de introductie van Java (in 1995) heeft de ontwikkeling van objectgeoriënteerde programma’s dan ook een duidelijke impuls gekregen. Bij grote softwarehuizen zien we de laatste tijd een toename in de ontwikkeling van OO-softwareprojecten voor commerciële doeleinden.

Tot op heden is de ‘klassieke’ programmatuur (geschreven in COBOL, Pascal, en dergelijke) in omvang nog steeds in de meerderheid. Dit heeft mede te maken met de verrassende vitaliteit van sommige oude talen als COBOL. Van COBOL is overigens ook een OO-versie verschenen.
  

 

 


--------------------------------------------------------------------------------

 

 


2 - Begrippen uit de objectoriëntatie     © Instruct

   Belangrijke begrippen uit de wereld van de objectoriëntatie zijn (tussen haakjes de Engelse term):

objecten (objects)
klassen (classes)
methoden (methods)
inkapseling (encapsulation)
overerving (inheritance)

  
  Objecten
 
In het dagelijks leven komen we objecten in allerlei vormen tegen. Een huis, een stofzuiger, een school en een auto zijn voorbeelden van objecten. Ook meer abstracte zaken zoals verslagen, rekeningen, onderdelen van een gebruikersinterface (bijvoorbeeld vensters, knoppen, pictogrammen en menu’s bij Windows) zijn objecten. Hierbij vormen samenhangende gegevens én de opdrachten die erop uitgevoerd worden, een onlosmakelijk geheel.

Het gebruik van objecten in een programma heeft als voordeel dat het niet nodig is om te weten hoe het object technisch in elkaar zit. Het is alleen van belang om te weten hoe het object gebruikt moet worden. Objecten zijn te onderscheiden op basis van eigenschappen, bij OO noemt men die eigenschappen attributen.

Voorbeeld: auto
attributen van het object ‘Auto’ kunnen zijn:

het hebben van wielen
bestuurbaar zijn
merk
type
kleur
bouwjaar
cataloguswaarde

  
  Klassen
 
Een object is altijd een vertegenwoordiger van een klasse; klassen zijn rechtstreeks verbonden aan objecten. Men zegt wel dat een object een instantie van een klasse is. In de klasse wordt een lijst beschreven van alle attributen en methoden van het object.


Voorbeeld: auto
We hebben daarnet een auto een object genoemd. Er zijn diverse typen auto’s:

stationwagens
cabrio’s
SUV’s
bestelwagens, enzovoort
Alle bestelwagens behoren tot de klasse van auto’s. Een klasse bestaat dus uit objecten met een aantal gemeenschappelijke attributen. Elke individuele bestelwagen die uit de fabriek komt, is een object van de klasse Auto.

Het is niet altijd gemakkelijk om onderscheid aan te brengen tussen een klasse en een object. Men gebruikt deze begrippen soms door elkaar.

  
  Methoden
 
Methoden worden gebruikt om te communiceren met andere objecten en met de buitenwereld. De methoden verzorgen het gedrag van het object. Elke methode heeft een unieke naam waarmee deze aangeroepen wordt.


Voorbeeld: auto
Methoden bij het object auto kunnen zijn:

verkopen
repareren
overspuiten

  
  Inkapseling
 
Onder inkapseling wordt verstaan: het in een object insluiten van alle zaken die het object nodig heeft om te functioneren, in het bijzonder de methoden en de data. Door inkapseling zijn de methoden en de data voor de gebruiker onzichtbaar.

  
  Overerving
 
Objecten kunnen attributen en/of methoden van andere, vergelijkbare, objecten overnemen; we spreken dan van overerving. Dankzij deze mogelijkheid hoeven niet van alle objecten alle eigenschappen steeds opnieuw beschreven te worden. We zeggen dan wel dat de klasse de attributen van de erboven gelegen klasse ‘erft’. Ook methoden kunnen geërfd worden.


Voorbeeld: auto
Een klasse Bestelwagen kent grotendeels dezelfde attributen als de klasse Auto. Immers, ook bij elke bestelwagen is er sprake van Merk, Type, Kleur, Bouwjaar, Cataloguswaarde.
  

 

1 - C en C++     © Instruct


C- en C++-materiaal:
www.programmersheaven.com

 C
C is zoals gezegd een derde-generatietaal, een gestructureerde procedurele taal die veel wordt toegepast voor het ontwikkelen van besturingssystemen en applicatiesoftware. C wordt beschouwd als een erg compacte en efficiënte taal die dicht bij machinecode staat. Dit maakt dat C snel is, maar het is ook foutgevoelig en niet echt gebruikersvriendelijk.


C++
De objectgeoriënteerde opvolger van C is C++. Het draait in C++ om het OO-begrip klasse en om data-hiding. Dit laatste wil zeggen dat een object niets ‘weet’ van afzonderlijke gegevens, maar uitsluitend uitgaat van klassen. Als deze techniek goed toegepast wordt, levert dit kortere programma’s op, die eenvoudiger te doorgronden en te onderhouden zijn.

C++ is in 1980 ontworpen door Bjarne Stroustrup, een medewerker van AT&T. De naam C++ is als een woordspeling bedoeld. In C betekent C++ namelijk dat ‘C’ vervangen wordt door zijn opvolger, dus C++ wil zeggen dat het om een volgende versie van C gaat.

 


De homepage van Bjarne Stroustrup: www.research.att.com
  

 

 


--------------------------------------------------------------------------------

 

 


2 - Java     © Instruct


Artikel van Computerworld:
"Java, een blik in de toekomst"


 Java is een objectgeoriënteerde programmeertaal, die wel wat overeenkomsten heeft met C++. Het bijzondere van Java is dat het platformonafhankelijk is.

Java is ontwikkeld door de firma Sun en bestaat uit drie onderdelen:

De programmeertaal Java
Deze wordt beschouwd als een veelzijdige, overzichtelijke, betrouwbare en zuiver objectgeoriënteerde taal. De taal is gemaakt om op kleine computers te kunnen draaien en wordt dan ook gebruikt in bijvoorbeeld PDA’s en mobiele telefoons.

De JDK
DeJDK is een uitgebreide bibliotheek van programmacomponenten. Deze maakt Java tot een soort kist vol handige onderdelen waarmee het leuk programma’s bouwen is.

De Java Virtual Machine (JVM)
Dit is een vertaler die zogeheten bytecode omzet naar een machinetaal die geschikt is voor het platform waarop het Java-programma wordt uitgevoerd. De bytecode draait op alle platforms waarvoor een JVM bestaat.
Het laatstgenoemde punt maakt Java wezenlijk anders dan zijn voorgangers. Bij de programmeertalen die voor de komst van Java gebruikt werden, wordt het geschreven programma vertaald naar de machinecode die de computer begrijpt. Daarvoor wordt een vertaalprogramma gebruikt, de al eerder genoemde compiler. Om het programma voor een ander besturingssysteem (‘een ander platform’) geschikt te maken moet het aangepast worden, waarna het opnieuw gecompileerd moet worden.
  

 

Allerlei interessant Java-materiaal:
www.programmersheaven.com
www.developer.com

Sun Developer Network:
java.sun.com Bytecode
Bij Java vertaalt de compiler naar een vorm die geen machinecode is van een bestaand besturingssysteem, maar naar een tussenliggende vorm, de zogenoemde bytecode. Voor de uitvoering van die bytecode is het vervolgens noodzakelijk die bytecode om te zetten naar de machinetaal van die machine. Dit gebeurt door de Java Virtual Machine (JVM). Deze virtuele machine moet wel speciaal geschreven zijn voor het betreffende besturingssysteem. Dus is er voor elk besturingssysteem een eigen JVM nodig.

Overigens draait Java onder alle populaire 32-bits besturingssystemen en een aantal 64-bits systemen.

 De compiler zet een Java-programma om in platformonafhankelijke bytecode.


Hoewel wij de naam Java vooral associëren met een Indonesisch eiland, is de taal genoemd naar de koffie die de ontwikkelaars dronken (en die hen wakker moest houden). Vandaar dat in het logo van Java ook een kopje koffie te zien is…
  

 

 


--------------------------------------------------------------------------------

 

 


3 - Delphi     © Instruct


De Delphi-pagina van Codegear (voorheen Borland):
www.codegear.com

 Delphi is een visuele, objectgeoriënteerde programmeeromgeving van Borland, die gebaseerd is op de taal Pascal. In Delphi vind je alle bijzonderheden van OO programmeren terug.

Je werkt in Delphi in deIDE. De IDE biedt de mogelijkheid om

tekst op te maken;
een programma te compileren (omzetten naar machinetaal);
een programma te laten uitvoeren;
de fouten uit een programma te halen (te debuggen).
 
 Als een programma een fout bevat, spreken we van een bug. Het zoeken naar fouten wordtdebuggen genoemd. Volgens de overlevering werd een van de eerste gemelde fouten in een computerprogramma ook daadwerkelijk veroorzaakt door een insect: tussen de mechanische onderdelen van de computer was een mot terechtgekomen. Daardoor werkte het apparaat niet naar behoren.

Een van de sterke punten van Delphi is deVCL, een bibliotheek met objecten die klaar zijn voor gebruik.

Delphi leent zich goed voor programmeren voor de Windows-omgeving.
  

 

 


--------------------------------------------------------------------------------

 

 


4 - Visual Basic.NET     © Instruct

 

 

 

 

 

 

 

 

 


De .NET-pagina van Microsoft:
www.microsoft.nl

Meer informatie:
dotnet.startpagina.nl

 Een programmeertaal van Microsoft isVisual Basic.NET. Voorheen heette deze taal Visual Basic, maar vanaf versie 7 van Visual Basic heeft Microsoft gekozen voor een nieuwe naam (2002). VB.NET maakt deel uit van een groter geheel, dat Microsoft het .NET-platform heeft genoemd.

Met VB.NET kun je onder meer applicaties voor de Windows-omgeving schrijven. De gebruikersinterface staat daarbij centraal. Deze wordt ontworpen met alle voorzieningen die kenmerkend zijn voor Windows-applicaties, zoals:

knoppen
dialoogvensters
keuzemenu’s
selectievakjes
Daarna wordt de bijbehorende programmacode eraan verbonden. Ook het schrijven van webapplicaties behoort tot de mogelijkheden.

Platformonafhankelijk
VB.NET heeft meer kenmerken van objectoriëntatie dan zijn voorganger: in Visual Basic was bijvoorbeeld de mogelijkheid van overerving nog niet ingebouwd, in VB.NET wel. Het maakt bij het compileren van de programmacode gebruik van een tussentaal, vergelijkbaar met de bytecode van Java. Dit maakt dat .NET evenals Java platformonafhankelijk is.

VBA
De populaire Office-pakketten bevatten een vereenvoudigde versie van VB.NET, dieVBA wordt genoemd. Hiermee kun je niet alleen macro’s voor de betreffende programma’s ontwikkelen, maar ook volwaardige programma’s.

Een macro is een programmaatje waarmee bepaalde handelingen in een toepassingspakket geautomatiseerd kunnen worden. Een macro bestaat net als elk programma uit een reeks instructies.
  

 

1 - Programmeertalen voor het web     © Instruct

   De klassieke programmeertalen schieten over het algemeen tekort op het gebied van webapplicaties. De opkomst van het web heeft dan ook een aantal nieuwe en vernieuwde talen opgeleverd, die in deze paragraaf ter sprake komen. Bij de indeling van deze talen speelt het client/server-model een rol.

Toegepast op het internet bestaat het client/server-model uit verschillende componenten:

De client is de computer van de surfer, waarop een browser draait. Via dit programma bezoekt de surfer websites, bijvoorbeeld door de URL in de adresbalk te typen of op hyperlinks te klikken.
De aanvraag voor een webpagina wordt verzonden naar een server waarop de website opgeslagen is. De server stuurt de gevraagde pagina naar de client. Populaire sites zoals Google en MSN kunnen duizenden clients per seconde bedienen.
 Een schematisch voorstel van het client/server-model: de clients doen een aanvraag voor een webpagina bij een server; de server verzendt de gevraagde pagina via internet.

Zowel voor de server als voor de client zijn programmeertalen ontwikkeld.

De client-sided programmeertalen worden uitgevoerd op de computer van de gebruiker.
De server-sided talen worden uitgevoerd op de server die de websites bevat.
  

 

 


--------------------------------------------------------------------------------

 

 


2 - Client-sided programmeertalen voor het web     © Instruct

   Van de technieken die je op de client tegenkomt, bespreken we twee categorieën:

opmaaktalen
scriptingtalen

  
  Opmaaktalen: HTML en XHTML
 XHTML

 XML

 

 

 

 

 


Over HTML is veel informatie te vinden, bijvoorbeeld op:
html.startpagina.nl
www.webreference.com
www.handleidinghtml.nl

 


 
HTML dient voor het beschrijven van de structuur van webpagina’s. Als je HTML gebruikt, plaats je besturingscodes in teksten en daarmee geef je aan hoe die tekst door een browser afgebeeld moet worden op het beeldscherm. Deze codes zelf, tags genaamd, beeldt de browser natuurlijk niet af.

Er zijn talloze verschillende codes, bijvoorbeeld voor het vet, cursief en onderstreept maken van tekst, voor het maken van grote en minder grote koppen, voor het opnemen van afbeeldingen, voor het kiezen van kleuren, noem maar op. De codes staan tussen punthaken: < en >. Over het algemeen bestaan ze uit een begin- en een eindcode, bijvoorbeeld:

<h1> om een hoofdkop aan te geven
</h1> om het einde van deze kop aan te geven
De browser geeft koppen van niveau 1 in grote en vette letters weer.

De opmaak van de webpagina wordt verzorgd door zogeheten stylesheets; HTML brengt structuur aan in het document.

Een van de belangrijkste kenmerken van HTML is de mogelijkheid om documenten aan elkaar te koppelen via hyperlinks. Met behulp van HTML geef je hyperlinks de juiste code, zodat ze ook daadwerkelijk fungeren zoals ze bedoeld zijn.

Het is niet zo heel moeilijk om HTML te leren (zeker niet als je het vergelijkt met het leren van een ‘echte’ programmeertaal), maar het wordt steeds minder noodzakelijk om deze taal te beheersen. Er verschijnen namelijk steeds meer programma’s waarmee je op een eenvoudige wijze webpagina’s ontwerpt.

HTML-code:


Webpagina:

 

Voorbeeld van een stukje HTML-code met de resulterende webpagina.

In HTML kun je kleine Java-programma’s opnemen, die applets worden genoemd. Applets draaien op de client. 


 
  XHTML
XHTML is een nieuwere variant van HTML, die striktere eisen aan de codering stelt dan HTML. Zo is het bij voorbeeld verplicht dat alle tags worden afgesloten. Hierdoor kan er bij het afbeelden van webpagina’s minder fout gaan.

(X)HTML werkt samen met een techniek dieCSS wordt genoemd. Via CSS is de opmaak van webpagina’s zeer nauwkeurig in te stellen.

  
  Scriptingtalen: JavaScript

Heel veel gratis scripts:
www.hotscripts.com
www.javascriptkit.com
www.quirksmode.org

 


JavaScript is ontwikkeld door onder meer Netscape Communications Corporation. Het is een opdrachttaal die fungeert als uitbreiding op HTML: er kunnen opdrachtregels aan een webpagina mee worden toegevoegd. De browser interpreteert de JavaScript-opdrachten als de pagina op het scherm geplaatst wordt.

Java en JavaScript worden nogal eens door elkaar gehaald. Het grootste verschil tussen beide talen is dat Java een volwaardige programmeertaal is, terwijl JavaScript is bedoeld als uitbreiding op HTML. JavaScript is eenvoudiger, maar daardoor ook beperkter: het wordt uitsluitend toegepast voor webapplicaties. De toepassingsmogelijkheden van Java zijn veel breder. Je kunt er bijvoorbeeld complete tekstverwerkers in programmeren.

In tegenstelling tot Java is JavaScript geen volledige programmeertaal. De opdrachten zijn beperkt tot de objecten van de webbrowser. Met JavaScript kan een ontwerper webpagina’s meer interactiviteit geven. Via het script kan hij reageren op eigenschappen van de browser en de computeromgeving.

Event
De gebruiker voert een bepaalde handeling uit: hij tikt gegevens in, kiest een mogelijkheid uit een menu, klikt op een knop of vult een veld in, waarna JavaScript-opdrachten voor een passende reactie zorgen. We zeggen dan dat JavaScript reageert op een event; de handeling van de gebruiker heet in programmeertaaljargon een ‘event’ of ‘gebeurtenis’. Een reactie zou kunnen zijn dat er een aangepaste tekst wordt getoond, die betrekking heeft op de gemaakte keuze.

mouseOver en mouseOut
Een voorbeeld van een toepassing is het laten ‘oplichten’ van een plaatje of tekst als de gebruiker er met de muisaanwijzer overheen gaat. Dat is een visueel signaal dat er op die plaats geklikt kan worden. Er worden in dat geval twee plaatjes gemaakt, een donkere en een lichte versie. De pagina bevat JavaScript-opdrachten die reageren op de event ‘mouseOver’ en ervoor zorgen dat de lichte versie van het plaatje verschijnt. Bij de event ‘mouseOut’ (de muisaanwijzer verlaat het gebied) wordt de donkere versie weer teruggezet.

Niet alle browsers ‘begrijpen’ JavaScript. Ontwikkelaars van een website moeten rekening houden met zulke browsers. Gelukkig komt er geen foutmelding of iets dergelijks. Een browser die geen JavaScript ‘kent’, slaat de opdrachten over.

Andere scriptingtalen zijn VBScript en Flash ActionScript.
  

 

 


--------------------------------------------------------------------------------

 

 


3 - Server-sided programmeertalen voor het web     © Instruct


  PHP

Meer informatie:
php.startpagina.nl
www.phphulp.nl


 
Moderne websites zijn vaak dynamisch. Ze bevatten allerlei functies die met HTML niet aangebracht kunnen worden. Denk aan een gastenboek, een mogelijkheid om elektronisch te betalen, een discussieforum, een fotoalbum of een gepersonaliseerde website. Om deze functies mogelijk te maken zijn er aanvullingen op HTML ontwikkeld, waarvan PHP de bekendste is.

Andere technieken zijn:

ASP
JSP
Coldfusion

De syntaxis van PHP vertoont overeenkomsten met die van C, Java en Perl. De betekenis van de afkorting PHP heeft in de loop der tijd een verandering ondergaan. In eerste instantie betekende het Personal Home Page Tools, maar tegenwoordig wordt meestal de aanduiding PHP: HyperText Preprocessor gebruikt. PHP-documenten hebben meestal de extensie .php.

Een preprocessor voert eerst een bewerking uit op een webpagina voordat hij naar de browser wordt gestuurd.

HTML-bestand
Overigens merkt de bezoeker van een website niet of er naast HTML ook PHP in de website is verwerkt. Het resultaat dat naar de browser op de client wordt gestuurd, is namelijk een HTML-bestand. Vaak zijn de gegevens afkomstig uit een database. PHP is goed in staat gegevens uit een database te halen en deze op te nemen tussen de HTML-code die naar de client wordt gestuurd. Dit is ook het dynamische aspect van PHP: afhankelijk van wat de internetgebruiker wil, worden verschillende gegevens uit de database geselecteerd.

Zoekmachine
Denk bijvoorbeeld aan het gebruik van een zoekmachine: zonder PHP zou dit niet mogelijk zijn. Op basis van de ingevoerde zoekterm wordt het overzicht van websites samengesteld, afkomstig uit een immense database.

Omdat PHP een aanvulling op HTML is, is kennis van HTML voor de PHP-programmeur een vereiste.
 
 
PHP is ontwikkeld als ‘open source’ product. Dit betekent dat de broncode vrij is verspreid en aangepast mag worden (net als bijvoorbeeld Linux).

Hieronder staat een voorbeeld van PHP-code, waarbij duidelijk te zien is dat er tussen de HTML-code een ‘PHP-blok’ is opgenomen. De resulterende webpagina is in de figuur eronder zichtbaar.


 Het resultaat van het ‘PHP-blok’ is de datum van vandaag.
 

09-12-2009 om 14:28 geschreven door mankuiper  

0 1 2 3 4 5 - Gemiddelde waardering: 0/5 - (0 Stemmen)


Inhoud blog
  • M3H2
  • M3H1
  • Samenvatting Hoofdstuk 5.2
  • Samenvatting Hoofdstuk 5.1
  • Informatica voor dummies
    Zoeken in blog

    Beoordeel dit blog
      Zeer goed
      Goed
      Voldoende
      Nog wat bijwerken
      Nog veel werk aan
     
    Archief per week
  • 22/03-28/03 2010
  • 07/12-13/12 2009
  • 09/11-15/11 2009

    E-mail mij

    Druk op onderstaande knop om mij te e-mailen.


    Gastenboek

    Druk op onderstaande knop om een berichtje achter te laten in mijn gastenboek


    Blog als favoriet !


    Blog tegen de wet? Klik hier.
    Gratis blog op https://www.bloggen.be - Meer blogs