2021-04-23
slides.com/jod/pt_17a
Docent: Jo Devriendt
Assistent: Ann Philips
Coördinator: Joost Vennekens
voornaam.achternaam@kuleuven.be
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Niet volledig akkoord: er bestaan computerprogramma's die geen uitvoerbare instructies bevatten (zie volgende lesvideo).
Wikipedia:
A computer program is a collection of instructions that can be executed by a computer to perform a specific task.
Eigen definitie:
Een computerprogramma is een beschrijving van een functie die een computer kan (proberen te) berekenen
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Met andere woorden: een functie is een input-outputrelatie, waarbij voor elke input exact één output bestaat.
Wikipedia:
In mathematics, a function is a binary relation between two sets that associates to each element of the first set exactly one element of the second set.
Real-life voorbeeld: de functie die elk persoon afbeeldt op haar leeftijd
Abstract voorbeeld: de functie met als input alle mogelijke C-programma's en inputs voor C-programma's, en als output of het gegeven C-programma termineert op de gegeven input
Klassiek wiskundig voorbeeld:
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Eigen definitie:
Een computerprogramma is een beschrijving van een functie die een computer kan (proberen te) berekenen
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Bestaat uit
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Wiskundige definitie:
tupel van 7 elementen
In: huidige toestand en ingelezen teken
Uit: nieuwe toestand, nieuw teken om op de band te schrijven, of de leeskop naar links of rechts moet
Als een TM een processor is, dan zijn de tekens de bits, de band het geheugen, en de transitiefunctie de configuratie van logische poorten
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Interessante functie: "simuleer"
Bestaat er een TM die "simuleer" kan berekenen?
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Bestaat er een TM die "simuleer" kan berekenen?
Ja!
Als een UTM een processor is, dan is de geëncodeerde TM die gesimuleerd wordt het programma
TMs kun je gebruiken om de berekeningen mee te modelleren, onafhankelijk of de berekening uitgevoerd wordt door software of hardware
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Kunnen alle functies door een TM uitgerekend worden?
Neen!
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Bestaat er een berekeningsproces die een TM-onberekenbare functie kan berekenen?
Euh...
Church-Turinghypothese:
Elke functie die berekend kan worden,
kan berekend worden door een TM.
Argument: alle andere krachtige berekeningsprocessen tot nu toe (bvb. lambda calculus of quantum computing) kunnen niets meer dan TMs
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Een "systeem" is Turingcompleet indien het alle functies kan berekenen die een TM kan berekenen
Hoe Turingcompleetheid bewijzen?
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Uit de Church-Turinghypothese volgt:
elk systeem dat Turingcompleet is kan elke berekenbare functie berekenen
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021