1 |
InPUTpy : InPUT for PythonFink, Christoffer January 2014 (has links)
There are many problems where the solution depends heavily on parametertuning and therefore on conguration. Examples include Hill Climbers andvarious Evolutionary Algorithms. The Intelligent Parameter Utilization Tool(InPUT) uses a cross-language format for describing congurations of computerexperiments, thereby aiding in documentation and communication. Itis implemented in Java, and a C++ version is being developed. This meansthat only implementations in statically typed languages currently exist. APython port would thus greatly increase the diversity of implementation languages.The goal of this project was to create an InPUT implementation inPython, and to explore the suitability of a dynamically typed language inthis context. A de facto specication was discovered by creating a suite oflearning tests, and the new implementation was developed using a test-drivenapproach. Several features of Python proved advantageous by simplifying thedevelopment process.
|
2 |
On the fly type specialization without type analysisChevalier-Boisvert, Maxime 12 1900 (has links)
Les langages de programmation typés dynamiquement tels que JavaScript et Python repoussent la vérification de typage jusqu’au moment de l’exécution. Afin d’optimiser la performance de ces langages, les implémentations de machines virtuelles pour langages dynamiques doivent tenter d’éliminer les tests de typage dynamiques redondants. Cela se fait habituellement en utilisant une analyse d’inférence de types. Cependant, les analyses de ce genre sont souvent coûteuses et impliquent des compromis entre le temps de compilation et la précision des résultats obtenus. Ceci a conduit à la conception d’architectures de VM de plus en plus complexes.
Nous proposons le versionnement paresseux de blocs de base, une technique de compilation à la volée simple qui élimine efficacement les tests de typage dynamiques redondants sur les chemins d’exécution critiques. Cette nouvelle approche génère paresseusement des versions spécialisées des blocs de base tout en propageant de l’information de typage contextualisée. Notre technique ne nécessite pas l’utilisation d’analyses de programme coûteuses, n’est pas contrainte par les limitations de précision des analyses d’inférence de types traditionnelles et évite la complexité des techniques d’optimisation spéculatives.
Trois extensions sont apportées au versionnement de blocs de base afin de lui donner des capacités d’optimisation interprocédurale. Une première extension lui donne la possibilité de joindre des informations de typage aux propriétés des objets et aux variables globales. Puis, la spécialisation de points d’entrée lui permet de passer de l’information de typage des fonctions appellantes aux fonctions appellées. Finalement, la spécialisation des continuations d’appels permet de transmettre le type des valeurs de retour des fonctions appellées aux appellants sans coût dynamique. Nous démontrons empiriquement que ces extensions permettent au versionnement de blocs de base d’éliminer plus de tests de typage dynamiques que toute analyse d’inférence de typage statique. / Dynamically typed programming languages such as JavaScript and Python defer type checking to run time. In order to maximize performance, dynamic language virtual
machine implementations must attempt to eliminate redundant dynamic type checks. This is typically done using type inference analysis. However, type inference analyses
are often costly and involve tradeoffs between compilation time and resulting precision. This has lead to the creation of increasingly complex multi-tiered VM architectures.
We introduce lazy basic block versioning, a simple just-in-time compilation technique which effectively removes redundant type checks from critical code paths. This
novel approach lazily generates type-specialized versions of basic blocks on the fly while propagating context-dependent type information. This does not require the use of costly
program analyses, is not restricted by the precision limitations of traditional type analyses and avoids the implementation complexity of speculative optimization techniques.
Three extensions are made to the basic block versioning technique in order to give it interprocedural optimization capabilities. Typed object shapes give it the ability to
attach type information to object properties and global variables. Entry point specialization allows it to pass type information from callers to callees, and call continuation
specialization makes it possible to pass return value type information back to callers without dynamic overhead. We empirically demonstrate that these extensions enable
basic block versioning to exceed the capabilities of static whole-program type analyses.
|
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.0745 seconds