{"id":{"repo_id":"milano","oai_identifier":"oai:air.unimi.it:2434/1021772"},"canonical_url":"https://search.dev.ndltd.org/etd/milano/oai:air.unimi.it:2434/1021772","repository":{"repo_id":"milano","name":"Università degli Studi di Milano","base_url":"https://air.unimi.it/oai/request"},"display":{"title":"*PILER: NOT A VM TO RULE NO ONE","abstract":"In this work, we discuss an exotic alternative to compiler/transpiler development. The alternative takes form in the *piler (read starpiler), a novel compiler infrastructure rooted in the popular search algorithm A*. While traditional compilers are defined as ordered sequences of compilation passes, the *piler autonomously reconstruct the order information, and the compilation is the result of a search step (powered by A*) from all the available passes. This choice simplifies the language development by transparently reusing already available compilation passes. The main result allowing for fast searches is the development of metric a metric space embedding programs, consequently a non-overestimating heuristic can be derived. To test the *piler capabilities, we develop three simple programming languages S, S++, and S# mimicking C, C++, and C# respectively. We show that the *piler equipped with the proposed heuristic is capable of achieving compilation/transpilation between S, S++, and S# in less than a second while a naive search would require more than 40 minutes to be completed. Furthermore, we discuss possible variants of the proposed framework that, by changing initial assumptions, result in different overall properties.","abstract_html":"In this work, we discuss an exotic alternative to compiler/transpiler development. The alternative takes form in the *piler (read starpiler), a novel compiler infrastructure rooted in the popular search algorithm A*. While traditional compilers are defined as ordered sequences of compilation passes, the *piler autonomously reconstruct the order information, and the compilation is the result of a search step (powered by A*) from all the available passes. This choice simplifies the language development by transparently reusing already available compilation passes. The main result allowing for fast searches is the development of metric a metric space embedding programs, consequently a non-overestimating heuristic can be derived. To test the *piler capabilities, we develop three simple programming languages S, S++, and S# mimicking C, C++, and C# respectively. We show that the *piler equipped with the proposed heuristic is capable of achieving compilation/transpilation between S, S++, and S# in less than a second while a naive search would require more than 40 minutes to be completed. Furthermore, we discuss possible variants of the proposed framework that, by changing initial assumptions, result in different overall properties.","abstract_has_math":false,"creators":["BERTOLOTTI, FRANCESCO"],"institution":"Università degli Studi di Milano","degree_name":null,"degree_level":null,"degree_discipline":null,"degree_department":null,"school":null,"contributors":["advisor: W. Cazzola","F. Bertolotti","CAZZOLA, WALTER","SASSI, ROBERTO"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2024,"date_issued":"2024-01-26","date_published":"2024-01-26","updated_at":"2026-07-27T20:19:12Z","subjects":["In questo lavoro proponiamo una alternativa allo sviluppo di compilatori e transpilatori. L'alternative prende il nome di *piler (starpiler). Lo *piler sfrutta il famoso algoritmo di ricerca A* per ottenere compilazioni e transpilazioni. Tradizionalmente i compilatori sono definiti come una sequenza ordinata di passi di compilazione, invece lo *piler ricostruisce autonomamente l'informazione riguardante l'ordine facendo una ricerca sui possibili passi di compilazione. Questo permette di riutilizzare transparentemente passi di compilazione già esistenti e sviluppati per altri linguaggi. Tutto questo è reso possibile dallo spazio metrico nel quale i programmi sono immersi","infatti, dallo spazio metrico proposto possiamo derivare una euristica per l'algoritmo A*. Per dimostrare le abilità dello *piler abbiamo sviluppato tre semplici linguaggi di programmazione S, S++, e S# che imitano i rispettivi C, C++, e C#. Lo *piler è in grado di fare transpilazioni tra S, S++, e S# in meno di un secondo, mentre una ricerca naive richiederebbe più di 40 minuti. Per completare la discussione, proponiamo dei cambiamenti sulle assunzioni iniziali dello *piler che risultano in proprietà differenti dell'architettura."],"languages":["eng"],"rights":["info:eu-repo/semantics/openAccess"],"rights_urls":[],"identifier_entries":[{"key":"dc:identifier","label":"Identifier","values":["http://dx.doi.org/10.13130/bertolotti-francesco_phd2024-01-26","10.13130/bertolotti-francesco_phd2024-01-26"],"render_values":[{"text":"http://dx.doi.org/10.13130/bertolotti-francesco_phd2024-01-26","href":"http://dx.doi.org/10.13130/bertolotti-francesco_phd2024-01-26","code":true},{"text":"10.13130/bertolotti-francesco_phd2024-01-26","href":"https://doi.org/10.13130/bertolotti-francesco_phd2024-01-26","code":true}]}]},"links":{"outbound_url":"https://hdl.handle.net/2434/1021772","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["advisor: W. Cazzola","F. Bertolotti","CAZZOLA, WALTER","SASSI, ROBERTO"]},{"key":"dc:creator","label":"Author","values":["BERTOLOTTI, FRANCESCO"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2024-01-26"]},{"key":"dc:publisher","label":"Institution","values":["Università degli Studi di Milano","place:Dipartimento di Informatica Giovanni Degli Antoni"]},{"key":"dc:relation","label":"Dc Relation","values":["numberofpages:94"]},{"key":"dc:type","label":"Dc Type","values":["info:eu-repo/semantics/doctoralThesis"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["In questo lavoro proponiamo una alternativa allo sviluppo di compilatori e transpilatori. L'alternative prende il nome di *piler (starpiler). Lo *piler sfrutta il famoso algoritmo di ricerca A* per ottenere compilazioni e transpilazioni. Tradizionalmente i compilatori sono definiti come una sequenza ordinata di passi di compilazione, invece lo *piler ricostruisce autonomamente l'informazione riguardante l'ordine facendo una ricerca sui possibili passi di compilazione. Questo permette di riutilizzare transparentemente passi di compilazione già esistenti e sviluppati per altri linguaggi. Tutto questo è reso possibile dallo spazio metrico nel quale i programmi sono immersi","infatti, dallo spazio metrico proposto possiamo derivare una euristica per l'algoritmo A*. Per dimostrare le abilità dello *piler abbiamo sviluppato tre semplici linguaggi di programmazione S, S++, e S# che imitano i rispettivi C, C++, e C#. Lo *piler è in grado di fare transpilazioni tra S, S++, e S# in meno di un secondo, mentre una ricerca naive richiederebbe più di 40 minuti. Per completare la discussione, proponiamo dei cambiamenti sulle assunzioni iniziali dello *piler che risultano in proprietà differenti dell'architettura."]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["eng"]},{"key":"dc:rights","label":"Dc Rights","values":["info:eu-repo/semantics/openAccess"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["https://hdl.handle.net/2434/1021772","http://dx.doi.org/10.13130/bertolotti-francesco_phd2024-01-26","10.13130/bertolotti-francesco_phd2024-01-26"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["In this work, we discuss an exotic alternative to compiler/transpiler development. The alternative takes form in the *piler (read starpiler), a novel compiler infrastructure rooted in the popular search algorithm A*. While traditional compilers are defined as ordered sequences of compilation passes, the *piler autonomously reconstruct the order information, and the compilation is the result of a search step (powered by A*) from all the available passes. This choice simplifies the language development by transparently reusing already available compilation passes. The main result allowing for fast searches is the development of metric a metric space embedding programs, consequently a non-overestimating heuristic can be derived. To test the *piler capabilities, we develop three simple programming languages S, S++, and S# mimicking C, C++, and C# respectively. We show that the *piler equipped with the proposed heuristic is capable of achieving compilation/transpilation between S, S++, and S# in less than a second while a naive search would require more than 40 minutes to be completed. Furthermore, we discuss possible variants of the proposed framework that, by changing initial assumptions, result in different overall properties."]},{"key":"dc:title","label":"Title","values":["*PILER: NOT A VM TO RULE NO ONE"]}]}],"canonical_facts":{"dc:contributor":["advisor: W. Cazzola","F. Bertolotti","CAZZOLA, WALTER","SASSI, ROBERTO"],"dc:creator":["BERTOLOTTI, FRANCESCO"],"dc:date":["2024-01-26"],"dc:description":["In this work, we discuss an exotic alternative to compiler/transpiler development. The alternative takes form in the *piler (read starpiler), a novel compiler infrastructure rooted in the popular search algorithm A*. While traditional compilers are defined as ordered sequences of compilation passes, the *piler autonomously reconstruct the order information, and the compilation is the result of a search step (powered by A*) from all the available passes. This choice simplifies the language development by transparently reusing already available compilation passes. The main result allowing for fast searches is the development of metric a metric space embedding programs, consequently a non-overestimating heuristic can be derived. To test the *piler capabilities, we develop three simple programming languages S, S++, and S# mimicking C, C++, and C# respectively. We show that the *piler equipped with the proposed heuristic is capable of achieving compilation/transpilation between S, S++, and S# in less than a second while a naive search would require more than 40 minutes to be completed. Furthermore, we discuss possible variants of the proposed framework that, by changing initial assumptions, result in different overall properties."],"dc:identifier":["https://hdl.handle.net/2434/1021772","http://dx.doi.org/10.13130/bertolotti-francesco_phd2024-01-26","10.13130/bertolotti-francesco_phd2024-01-26"],"dc:language":["eng"],"dc:publisher":["Università degli Studi di Milano","place:Dipartimento di Informatica Giovanni Degli Antoni"],"dc:relation":["numberofpages:94"],"dc:rights":["info:eu-repo/semantics/openAccess"],"dc:subject":["In questo lavoro proponiamo una alternativa allo sviluppo di compilatori e transpilatori. L'alternative prende il nome di *piler (starpiler). Lo *piler sfrutta il famoso algoritmo di ricerca A* per ottenere compilazioni e transpilazioni. Tradizionalmente i compilatori sono definiti come una sequenza ordinata di passi di compilazione, invece lo *piler ricostruisce autonomamente l'informazione riguardante l'ordine facendo una ricerca sui possibili passi di compilazione. Questo permette di riutilizzare transparentemente passi di compilazione già esistenti e sviluppati per altri linguaggi. Tutto questo è reso possibile dallo spazio metrico nel quale i programmi sono immersi","infatti, dallo spazio metrico proposto possiamo derivare una euristica per l'algoritmo A*. Per dimostrare le abilità dello *piler abbiamo sviluppato tre semplici linguaggi di programmazione S, S++, e S# che imitano i rispettivi C, C++, e C#. Lo *piler è in grado di fare transpilazioni tra S, S++, e S# in meno di un secondo, mentre una ricerca naive richiederebbe più di 40 minuti. Per completare la discussione, proponiamo dei cambiamenti sulle assunzioni iniziali dello *piler che risultano in proprietà differenti dell'architettura."],"dc:title":["*PILER: NOT A VM TO RULE NO ONE"],"dc:type":["info:eu-repo/semantics/doctoralThesis"]},"updated_at":"2026-07-27T20:19:12Z"}