Documente Academic
Documente Profesional
Documente Cultură
Prezentare 7
Prezentare 7
Programarea Generativă:
Există task-uri de rutină de programare ce sunt întotdeauna similare
Doar mici variații de funcție de anumiți parametri
Programarea generativă încearcă automatizare acestor task-uri folosind generatoare de program
parametrizate pentru diverse părți ale programului
Generatoarele de program sunt meta-programe: programe ce lucrează cu alte programe
Meta-programarea poate fi sofisticată și potențial nesigură
Diverse abordări ale programării generative
Instrumente externe: programe de sine stătătoare ce efectuază un task particular de generare de
program (compilator, generator de compilator)
Elemente generative de limbaj: construcții pentru generarea integrată într-un limbaj de programare
Adesea transformarea a unor noi construcții de nivel înalt în construcții de nivel scăzut (adesea
numit ”macrouri”)
Generator de Stub
CURS 7
2) Evitarea erorilor de dezvoltare prin reducerea implicării umane atunci când acest lucru nu este necesar
3) Folosirea mai eficientă prin adaptabilitate (e.g. reflecție dinamică)
4) Câștig de performanță la runtime prin folosirea de componente adaptate (e.g. Generarea de cod
optimizat)
Siguranța Generatoarelor
Sistemele tip pot detecta potențiale erori de execuție în mod static
Generatoarele sunt meta-programe ce introduc noi surse de erori de execuție: erori de generare
(părti ale programului generat ce pot genera potențial cod greșit ce la rândul sau poate cauza erori
de execuție)
Necesare noi sisteme de verificare de tip pentru detectarea părților în generatoare ce pot genera
potențial cod greșit (sisteme de verificare pentru generatoare)
Siguranța generatorului: proprietatea unui generator de a nu putea genera cod greșit
Din păcate siguranța generatoarelor de obicei nu este garantata
Erori de Generare
Prin verificările de tip ale ieșirii generatorului putem detecta posibile erori de generare
Dar unele erori de generare produc cod greșit doar in cazul unor anumiți parametri