Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

text: some more results and conclusions

  • Loading branch information...
commit 7634e9e991a11258070ba736514433f71cfbd784 1 parent 4423652
@junniest authored
View
BIN  bachelors/bachelors.pdf
Binary file not shown
View
21 bachelors/bachelors.tex
@@ -19,6 +19,9 @@
\usepackage[final]{pdfpages}
\usepackage{listings}
+\usepackage[intoc]{nomencl}
+\makenomenclature
+
\setlength{\nomlabelwidth}{.01\hsize}
\renewcommand{\nomlabel}[1]{\hfil\textbf{#1} --}
@@ -84,26 +87,16 @@ \section*{Secinājumi}
\include{results}
-
+\section*{Secinājumi}
\addcontentsline{toc}{section}{Secinājumi}
-
+\label{s:conclusions}
Šīs darbs skar jautājumu par dinamiskas makro-apstrādes sistēmas izstrādes iespējamības teorētisku pamatojumu un koncepciju. Tas arī parāda eksistējošo sistēmu nepilnības un parāda pieejas, kas varētu palīdzēt šo nepilnību risināšanā.
-
-Makro sistēmas izstrāde tiks turpināta lai izveidotu reālu lietojamu piemēru aprakstītai koncepcijai. Ir saprotams, ka izstrādes gaitā tiks atrastas jaunas problēmas, kuras vajadzēs risināt, un jaunas idejas, ko varēs pielietot realizācijā. Tomēr pirmais izstrādes solis ir izdarīts un cerams, ka šādas transformācijas sistēmas projekts būs noderīgs programmēšanas valodu izstrādes, kompilatoru optimizēšanas un makro valodu jomās.
-%
-%
-%Tālāk darbs tik turpināts (šeit var pārfrāzēt Conclusions no raksta melnraksta).
-
-%This paper describes a theoretical background for constructing an extensible dynamic macroprocessor and provides a view on solving shortcomings that ex- isting preprocessors have. We present to the judjment of the reader a parser model that includes facilities necessary for the dynamic extension constructing and the syntax we propose for describing macros using regular expression ele- ments. We also give several examples to demonstrate the described extension’s capabilities, which can be applied to perform metaprogramming techniques as well as language syntax extension.
-
-%We have prototyped the described system and plan to develop it further on to create an actual usable example of the described approach. There are, for sure, still plenty of issues to tackle and resolve, however, we expect the project to be helpful in wide areas of language design, compiler optimisations and macro languages.
-
+Prototipa izveidošana parāda, ka šablonu sakrišanu meklēšanas sistēma ir implementējama, un var kļūt par bāzi tālākai sistēmas funkcionalitātes prototipēšanai, testēšanai un attīstīšanai.
Uz doto brīdi sistēmas izveide ir bāzēta uz konkrētas parsētāju arhitektūras, bet atšķirībā no vairākuma līdzīgiem darbiem, tā nav piesaistīta konkrētai programmēšanas valodai. Tālākos izstrādes posmos tās arhitektūra var tikt pielāgota arī citiem parsētāju modeļiem.
-\appendixtitleon
-\appendixtitletocon
+
Makro sistēmas izstrāde tiks turpināta un tiks implementēts reāls lietojams piemērs aprakstītai sistēmai. Ir saprotams, ka pilnās sistēmas izstrādes gaitā tiks atrastas jaunas problēmas, kuras vajadzēs risināt, un jaunas idejas, ko varēs pielietot realizācijā. Tomēr pirmais izstrādes solis ir izdarīts un cerams, ka šādas transformācijas sistēmas projekts būs noderīgs programmēšanas valodu izstrādes, kompilatoru optimizēšanas un makro valodu jomās.
\appendixtitleon
View
15 bachelors/results.tex
@@ -2,15 +2,18 @@ \section*{Rezultāti}
\addcontentsline{toc}{section}{Rezultāti}
\label{s:results}
-Šī darba ietvaros tik definēta koncepcija programmēšanas valodu paplašināšanas sistēmai, kas varētu tikt ieviesta jebkādai LL-parsējamai valodai. Tās ideja ir radusies izstrādājot kompilatoru valodai Eq, un tālākos izstrādes posmos visticamāk tiks integrēta tās kompilatorā.
+Šīs darbs definē programmēšanas valodu paplašināšanas sistēmas koncepcija, kas varētu tikt ieviesta jebkādai LL-parsējamai valodai. Tās ideja ir radusies izstrādājot kompilatoru valodai Eq, un tālākos izstrādes posmos sistēma visticamāk tiks integrēta Eq kompilatorā.
-Transformāciju sistēma ir iedvesmota ar divu koda apstrādes principu kombināciju, ar dinamisko parsēšanu un ar koda priekšprocesēšanu. Dinamiskās koda parsēšanas trūkumi ir ļoti mazas valodas gramatikas kontroles iespējās, kā arī prasība pēc tāda parsētāja modeļa, kas ļauj modificēt savas parsēšanas tabulas darba laikā. Priekšprocesēšanas princips ir teksta apstrāde, kas dažādās situācijās ir nepietiekams nopietnu izejas koda modifikāciju iespējai.
+Transformāciju sistēma ir iedvesmota ar divu koda apstrādes principu kombināciju, ar dinamisko parsēšanu un ar koda priekšprocesēšanu. Dinamiskās parsēšanas pamatprincipas ir valodas gramatikas modificēšana koda parsēšanas laikā. Tomēr šai pieejai vispārīgā gadījumā piemīt ļoti mazas valodas gramatikas kontroles iespējās un tās darbam ir nepieciešams specifisks parsētāja modelis, kas ļauj darba laikā modificēt savas parsēšanas tabulu. Vispārpieņemtais priekšprocesēšanas princips ir programmas teksta apstrāde bez iedziļināšanās programmēšanas valodas struktūrā. Dažādās situācijās šāda pieeja ir nepietiekama nopietnām izejas koda modifikācijām.
-Sistēmas projektēšanā tika piedāvātas pieejas, kas ļaus izvairīties no abu principu trūkumiem. Tā tiks veidota ka virsbūve valodas parsētājam, ielasot noteiktas sintakses makro izteiksmes, kas sastāvēs no tipu aprakstiem, regulāro izteiksmju šablona un transformācijas funkcijas. Tā strādās paralēli ar parsētāju, pirms katras parsētāja produkcijas pārbaudes izpildot nepieciešamas virkņu transformāciju. Tā apstrādās programmas tekstu daļiņu veidā, nepieciešamības gadījumā vēršoties pie parsētāja pēc papildus informācijas. Tomēr tā tiek projektēta neatkarīgi no parsētāja, pieprasot minimālas zināšanas par valodas gramatiku, proti, iespējamo valodas daļiņu un pseido-daļiņu tipus. Tipi ir nepieciešami, lai ieviestu noteiktu transformāciju korektuma kontroli.
+Sistēmas projektēšanā tika piedāvātas pieejas, kas ļaus izvairīties no abu principu trūkumiem. Tā tiks veidota ka virsbūve valodas parsētājam, ielasot noteiktas sintakses makro izteiksmes, kas sastāvēs no tipu aprakstiem, regulāro izteiksmju šablona un transformācijas funkcijas. Tā strādās paralēli ar parsētāju, pirms katras parsētāja produkcijas pārbaudes izpildot nepieciešamas virkņu transformāciju. Tā apstrādās programmas tekstu daļiņu veidā, nepieciešamības gadījumā vēršoties pie parsētāja pēc papildus informācijas. Tomēr tā tiek projektēta neatkarīgi no parsētāja, pieprasot minimālas zināšanas par valodas gramatiku, proti, iespējamo valodas daļiņu un pseido-daļiņu tipus. Tipu zināšana ir nepieciešama, lai ieviestu noteiktu transformāciju korektuma kontroli makro ielasīšanas brīdī.
-Šī darba ietvaros tika izstrādāts prototips sakrišanu meklēšanas sistēmai, kurš konceptuāli var kalpot ka bāze transformācijas sistēmas izstrādei. Šablonu apakšsistēmas atrastās virknes kalpos ka ieejas dati transformācijas funkcijai. Tipu sistēma, savukārt, lietos regulāro izteiksmju minimizētos automātus lai pārbaudītu tipu sakritību makro izteiksmju ietvaros.
+Šī darba ietvaros tika izstrādāts prototips sakrišanu meklēšanas sistēmai. Darba izstrādes gaitā tika izveidota algoritmu kopa, kas ļaus efektīvi meklēt daļiņu virkņu sakrišanas ar šabloniem, un izvēlētie algoritmi tika implementēti prototipā. Lai pēc iespējas samazināt šablonu sakrišanu meklēšanas laiku tika izvēlēts lietot minimizētus determinētus galīgus automātus katra šablona reprezentēšanai. Lai vēl samazinātu apstrādes laiku tika izvēlēts apvienot ielasīto regulāro izteiksmju automātus vienā kopīgā automātā. Uz šīs pieejas bāzes tika izveidoti makro šablonu konfliktu risināšanas un programmas tvērumu maiņu apstrādes principi.
-Darbs parāda, ka ir iespējams veidot regulāro izteiksmju šablonus un ar tiem attiecīgi apstrādāt ieejas daļiņu virkni. Gadījuma, ja valodas parsētājs būs modelēts aprakstītā veidā, būs iespējams veikt sakrišanu meklēšanu.
-Prototipa izstrādes laikā tika identificētas iespējamās problēmas un izņēmumi, kuri ierobežo šablonu sistēmas darbu.
+Prototipa izstrādes laikā tika identificētas iespējamās problēmas un izņēmumi, kuri ierobežo šablonu sistēmas darbu. Lietojot izvēlēto pieeju nebūs iespējams grupēt šablonu daļas ar iekavām un adresēt regulāro izteiksmju apakšgrupas, jo automātu determinēšana un minimizēšana pārkārto grupējumus. Sistēma arī nevarēs apstrādāt daļiņu klašu mantošanās patstāvīgi, tam būs nepieciešama saskarne ar parsētāju. Izstrādāto prototipu reālās sistēmas implementācijas gaitā varēs optimizēt nemainot darbības principu, bet aizstājot izvēlētos algoritmus ar optimālākiem.
+
+Darbs parāda, ka ir iespējams veidot regulāro izteiksmju šablonus un ar to palīdzību attiecīgi meklēt sakrišanas ieejas daļiņu virkni. Gadījuma, ja valodas parsētājs būs modelēts aprakstītā veidā, būs iespējams veikt sakrišanu meklēšanu. Izstrādātais prototips var kļūt par bāzi tālākai transformācijas sistēmas prototipa izstrādei un implementēšanai reālā kompilatorā. Šablonu apakšsistēmas atrastās virknes kalpos ka ieejas dati transformācijas funkcijai. Tipu sistēma, savukārt, lietos regulāro izteiksmju minimizētos automātus lai pārbaudītu tipu sakritību makro izteiksmju ietvaros.
+
+Darba gaitā tika izpētītas eksistējošās programmas koda apstrādāšanas sistēmas, to īpašības un atšķirības no izvēlētās pieejas. Vairākumam meta-programmēšanas sistēmu ir ļoti cieša piesaiste pie konkrētas programmēšanas valodas implementācijas īpašībām (piem. Lisp un Forth). No otras puses universālie priekšprocesori apstrādā programmu tekstu, neievērojot valodas struktūru. Aprakstītā sistēma, savukārt, ir pielāgojama dažādām valodām un ar pieeju pie noteiktās saskarnes implementē saikni ar valodas semantiku.
Darba gaitā arī tika sagatavots publikācijas melnraksts, kas apraksta sistēmas koncepciju un pielietošanu. Tālākā sistēmas izstrādes gaitā tas tiks pilnveidots un publicēts. Raksta melnraksts ir atrodams pielikumā~\ref{ap:draft}.
Please sign in to comment.
Something went wrong with that request. Please try again.