1 |
[pt] A IMPLEMENTAÇÃO DE REGISTROS EM PALLENE / [en] THE IMPLEMENTATION OF RECORDS IN PALLENEGABRIEL DE QUADROS LIGNEUL 27 February 2020 (has links)
[pt] As características dinâmicas de linguagens de scripting introduzem um gargalo significativo no tempo de execução quando comparadas a linguagens de sistemas. A arquitetura scripting pode ser usada para melhorar o desempenho ruim de linguagens de scripting. O programador deve usar a linguagem de sistemas para tarefas que consomem muitos recursos, e a de scripting para flexibilidade. Entretanto, essa arquitetura tem duas falhas significativas quando usada para melhorar o desempenho de linguagens de
scripting. Primeiro, existe uma lacuna conceitual entre as duas linguagens, logo migrar da linguagem de scripting para linguagem de sistemas pode exigir enorme esforço. Segundo, existe um gargalo escondido ao manipular as estruturas de dados da linguagem de scripting a partir da linguagem de sistemas. Pallene é uma linguagem de sistemas projetada particularmente para Lua que almeja resolver essas duas falhas. Pallene é um subconjunto estaticamente tipado de Lua, o que facilita o processo de migração. Além disso, Pallene manipula diretamente as estruturas de dados de Lua sem introduzir gargalo. Neste trabalho, nós propomos dois tipos de registros para Pallene, e nós apresentamos a implementação do compilador de Pallene. Nós avaliamos o desempenho do nosso compilador para compará-la com Lua padrão, LuaJIT, e programas C que utilizam a API C de Lua. Nossos experimentos mostram que Pallene é competitiva com as soluções existentes para melhorar o desempenho de Lua. / [en] The dynamic features of scripting languages introduce significant overhead in execution time when compared to system languages. The scripting architecture can be used to improve the poor performance of scripting languages. The programmer should use a system language for resourceintensive tasks, and a scripting one for flexibility. However, this architecture has two significant flaws when used to improve the performance of scripting languages. First, there is a conceptual gap between both languages; so migrating from the scripting language to the system language may require enormous effort. Second, there is a hidden overhead when manipulating the scripting-language data structures from the system language. Pallene is a system language designed particularly for Lua that aims to solve these two issues. Pallene is a statically-typed subset of Lua, which facilitates the migration process. Moreover, Pallene manipulates Lua s data structures directly without introducing overhead. In this work, we propose two types of records for Pallene, and we present the implementation of the Pallene compiler. We benchmarked our compiler to compare it to standard Lua, LuaJIT, and C programs using the Lua-C API. Our experiments show that Pallene is competitive with the existing solutions to improve Lua s performance.
|
2 |
Contribution à l'efficacité de la programmation par objets : evaluation des implémentations de l'héritage multiple en typage statique / Assesment of multiple inheritance implentation in static typingMorandat, Floréal 17 December 2010 (has links)
Cette thèse traite de la compilation efficace des langages à objets en héritage multiple. La programmation objet est caractérisée par un mécanisme fondamental, emph{la liaison tardive} --- la méthode appelée dépend du type dynamique d'un paramètre distingué, le emph{receveur}. L'efficacité de ce mécanisme nécessite une implémentation adéquate qui est conditionnée par le schéma de compilation utilisé --- compilation séparée avec chargement dynamique, compilation globale, etc. Cependant la programmation par objets présente une apparente incompatibilité entre trois termes : l'héritage multiple, l'efficacité et l'owa --- en particulier, le chargement dynamique. Nous avons étudié les techniques d'implémentation compatibles avec l'héritage multiple couramment utilisées ainsi qu'une alternative prometteuse, le ph. Nous nous plaçons dans le cadre du typage statique, donc nos conclusions peuvent valoir pour des langages comme cpp, eiffel, java, csharp, etc. Différents schémas de compilation sont considérés, de l'owa à l'cwa. Ces techniques et ces schémas ont été mis en uvre dans le compilateur auto-gène du langage prm. L'influence sur l'efficacité de tous ces éléments a été testée dans un protocole expérimental rigoureux de méta-compilation et les tests ont été réalisés sur une variété de processeurs différents. Les résultats des ces expérimentations sont discutés et comparés aux évaluations a priori effectuées sur les techniques d'implémentation. Ils confirment aussi que le ph est une technique d'implémentation intéressante pour le sous-typage multiple à la java. / His thesis is about efficient compilation of object oriented language with multiple inheritance.Object oriented programing is characterized by a main mechanism, emph{late binding} --- invoked method only depends on the dynamic type of one special parameter, the emph{receiver}.In order to be efficient this mechanism needs an implementation which depends on some compilation scheme --- separate compilation with dynamic loading, global compilation, etc.However object oriented programming present akin of incompatibility between three terms: multiple inheritance, efficiency and open world assumption --- especially with dynamic loading.In this thesis, we have studied common implementation techniques compatible with multiple inheritance and a promising alternative, perfect class hashing.The context of this study is static typing, our conclusion holds for languages like cpp, eiffel, java, csharp, etc.Different compilation schemes are considered, from open world assumption to closed world assumption.These techniques and schemes are implemented in the prm bootstraped compiler.Efficiency influence of all this artifacts has been tested with a rigorous meta-compilation experimental protocol and these tests have been performed on a variety of different processors.Results of these experiments are discuss and compared to an a priori evaluations of implementations techniquesThey mainly confirm perfect class hashing as an interesting implementation for multiple subtyping, a la java.
|
3 |
Omnia HR En HR-plattform för SharePoint / Omnia HR A HR-Platform for SharePoinDybeck, Markus January 2017 (has links)
Omnia HR är en HR-plattform utvecklat för Microsofts SharePoint. I denna artikel beskrivs hur en liten del av plattformen är skapad – onboardingen. När en ny person anställs på ett företag bör det göras förberedelser inför den nyanställdes första dag, det är vad onboardingen handlar om. I detta projekt skapades förutsättningar för att administrera och hantera dessa förberedelser. Projektet skrevs i Microsoft-utvecklade programmeringsspråket TypeScript, en påbyggnad på JavaScript. TypeScript transpileras ned till JavaScript och har stöd för de senaste funktionerna. I rapporten diskuteras fördelarna samt nackdelarna med att använda TypeScript för ett projekt, hur vida det faktiskt underlättar arbetet eller om det går lika bra att använda vanlig JavaScript. / Omnia HR is a HR-platform developed for Microsoft SharePoint. In this article, the creation of a smaller part for the platform – the onboarding – is described. When a new employee is hired, the company need to do some tasks before the new employees first day, that’s what the onboarding is all about. In this project conditions to administrate and handle these tasks were made. The project was written in the programing language TypeScript, developed by Microsoft. TypeScript is superset of JavaScript and is transpiled down to pure JavaScript with support for the latest functions. In this rapport pros and cons by using TypeScript for a project is discussed, and if it actually makes the process easier or if it’s just as good to use regular JavaScript.
|
Page generated in 0.0927 seconds