• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 5
  • 3
  • Tagged with
  • 8
  • 6
  • 4
  • 4
  • 4
  • 4
  • 3
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Studie av utvecklingsverktyg med inriktning mot PLC-system

Brax, christoffer January 1999 (has links)
<p>Datoranvändningen i samhället växer för varje dag. Det är då viktigt att programvara håller hög kvalité, då vissa programvaror styr kritiska maskiner som exempelvis flygplan. Ett sätt att få kvalitativa programvaror är att använda bra utvecklingsverktyg. I detta arbete utvärderas fem olika utvecklingsverktyg: GNAT (Ada), Microsoft Visual C++, Microsoft J++, Borland Delphi och Active Perl. Inriktningen på utvärderingen är mot utveckling av programvara för PLC-system. Det som utvärderats är effektivitet av genererad kod, kompileringstid, storlek på genererad kod, kodportabilitet och utbud av färdiga komponenter. Undersökningen har genomförts med hjälp av praktiska tester.</p>
2

Studie av utvecklingsverktyg med inriktning mot PLC-system

Brax, christoffer January 1999 (has links)
Datoranvändningen i samhället växer för varje dag. Det är då viktigt att programvara håller hög kvalité, då vissa programvaror styr kritiska maskiner som exempelvis flygplan. Ett sätt att få kvalitativa programvaror är att använda bra utvecklingsverktyg. I detta arbete utvärderas fem olika utvecklingsverktyg: GNAT (Ada), Microsoft Visual C++, Microsoft J++, Borland Delphi och Active Perl. Inriktningen på utvärderingen är mot utveckling av programvara för PLC-system. Det som utvärderats är effektivitet av genererad kod, kompileringstid, storlek på genererad kod, kodportabilitet och utbud av färdiga komponenter. Undersökningen har genomförts med hjälp av praktiska tester.
3

Functional Programming Languages and the JVM : Comparing Functional Language Compilation Techniques for the JVM / Funktionell Programmering och JVM:en : Jamföring av kompileringstekniker av funktionella språk till JVM:en

Olofsson, Asta January 2023 (has links)
Because of its security, high availability, and automatic memory management, the JVM (Java Virtual Machine) is a desirable execution environment. However, since the JVM was originally made for Java, which is an objectoriented language, it is hard for languages with other paradigms to run on it. This thesis explores the challenges of compiling a functional language for the JVM. We implement a backend generating JVM bytecode as an extension to the compiler of MCore, a minimal functional language based on the lambda calculus. The backend features two different ways of compiling functions. One generates classes representing functions and their environment at compile-time, and one creates these function classes dynamically at runtime. The two different versions of compiling functions are compared in regards to execution speed of the outputted bytecode, compiler output size, and recursion depth. The results show that the two different ways of compiling functions perform well on different metrics. / På grund av sin säkerhet, tillgänglighet och automatiska minneshantering är JVM:en (Java Virtual Machine) en önksvärd exekveringsmiljö. På grund av att JVM:en ursprungligen skapades för programmeringsspråket Java, som är ett objektorienterat språk, så är det svårt för språk som följer andra paradigmer att köra på JVM:en. Denna uppsats undersöker utmaningarna som uppstår vid kompilering av ett funktionellt språk på JVM:en genom en litteraturstudie. Vi implementerar en backend som genererar JVM bytekod som en utökning av kompilatorn för MCore, ett minimalt funktionellt språk baserat på lambdakalkylen. Backenden implementeras med två tekniker för att kompilera funktioner. Den ena genererar klasser som representerar funktioner och deras miljö under kompileringstiden och den andra genererar dessa funktionsklasser dynamiskt vid körtid. Vi jämför de två teknikerna med avseende på den producerade bytekodens exekveringstid, storlek och rekursionsdjup. Resultaten visar att de två kompilationsteknikerna av funktioner presterar olika på olika mätningar.
4

Function Practice : Ett verktyg för att öva programmering

Andersson, Fredrik January 2015 (has links)
När fler och fler väljer att lära sig programmering kan det vara bra att öva på attlösa problem, genom att skriva funktioner som sedan kan testas för att se omanvändaren har lyckats. Function Practice är en tjänst för att kunna öva programmeringpå just detta sätt, genom att lösa uppgifter med att skriva funktioneri olika programmeringsspråk, de språk som kommer kunna användas ärJava, C++ och Python. Det ger även ett lätt och smidigt sätt att skapa sådanauppgifter. Syftet med projektet är att utveckla denna tjänst, genom att skapa enwebbtjänst som kan kompilera och köra funktioner för de olika språken, enhemsida som användarna kan skriva och testa kod på, samt ett sätt att definierauppgifterna som ska lösas, detta testas sedan med hjälp av ett användartest i enmindre grupp för att se om hur användarvänlig den är, samt att funktionalitetentestas och jämförs med några tidigare lösningar. Tjänsten testas för att se om ytterligaresäkerhet behövs genom att försöka att köra kommandon på värdsystemet.Slutsatsen av projektet är funktionaliteten bakom tjänsten fungerar dock atthemsidan behöver vara lite tydligare för att den ska vara mer användarvänlig,samt att användaren borde kunna få felmeddelanden utifall något inte fungerarför att de lättare ska veta vad de behöver göra. Säkerheten visar sig vara en viktigdel då det går att köra kommandon på värdsystemet vilket ger användarnafull kontroll på systemet. / As more and more people choose to learn programming it may be good to practicesolving problems by writing functions that can then be tested to see if theuser has succeeded. Function Practice is a service to be able to practice programmingin exactly this way, by solving tasks of writing functions in differentprogramming languages, the languages that will be used is Java, C ++ andPython. It also provides an easy and convenient way to create such tasks. Theaim of the project is to develop this service by creating a Web service that cancompile and run functions for the different languages, a website that users canwrite and test code, as well as a way to define the tasks to be solved, this is thentested with a user test in a smaller group to see how user-friendly it is, and thefunctionality is tested and compared with some previous solutions. The serviceis tested to see if additional security is needed by trying to run commands onthe host system. The conclusion of the project is that the functionality behindthe service works, however, that the website needs to be a little clearer for it tobe more user-friendly, and that the user should be able to get error messages incase something does not work to make it easier to know what they need to do.Security proves to be an important part when it is possible to execute commandson the host system which gives users full control of the system.
5

Programspråk specificerade av nyttjare : en pilotstudie om tidsåtgång vid uppmärkning av dokument

Bragner, Johan, Wasing, Malin January 2016 (has links)
IT-projekt misslyckas ofta för att de blir sena och dyrare än planerat, och i många fall är det tidsfaktorn som är begränsande för projekten. Det existerar många olika programspråk och behov att dela konstruktioner mellan dessa. Idag använder applikationer inom samma system ofta olika terminologi och behovet av konverteringar uppkommer. Det existerar standardiserade språk som till exempel märkspråket XML men då organisationer väljer att skapa sin egen syntax för att formatera publiceringar kan ett motstånd urskiljas. Uppsatsen kan användas som underlag för vidare forskning inom programspråk. Denna studie fokuserar på att jämföra om val av syntax har någon betydelse för tidsåtgången vid uppmärkning av dokument. Den valda forskningsstrategin är experiment. En pilotstudie utfördes och med resultatet från studien gjordes en hypotesprövning i form av ett t-test. Analysen av resultatet antydde att användandet av valfri syntax implicerade en mindre tidsåtgång vid uppmärkning av dokument än vid användandet av XML. Från analysen konstateras det att ämnet bör undersökas vidare och att studien bör genomföras i större omfattning. / IT projects often fail because they are late and more expensive than planned, and in many cases it is the time factor that is limiting for projects. There exist many different programming languages and the need to share structures between them. Applications within the same system often uses different terminology and the need for conversions occurs. Standardized languages such as XML exist but when organizations choose to create their own syntax for formatting publications instead a resistance can be distinguished. The paper can be used as basis for further research in the area of programming languages. This research focuses on comparing if the choice of syntax affects expenditure of time when marking document. The selected research strategy is experiment. A pilot study has been done and based on the results of the study a hypothesis testing (t-test) was made. The analysis of the results indicated that the use of optional syntax implied that less time was spent at marking document than the use of XML. The conclusion from this was that this area should be further explored and that the study should be done on a larger scale.
6

Automated Generation of EfficientBitslice Implementations forArbitrary Sboxes / Automatiserad generering av effektiva bitvisaimplementeringar för godtyckliga lådor

Bariant, Augustin January 2023 (has links)
Whitebox cryptography aims at protecting standard cryptographic algorithmsthat execute in attacker-controlled environments. In these, the attacker is ableto read a secret key directly from memory. Common implementations mask alldata at runtime and operate on masked data by using many small precomputedtables. Practical whiteboxes involve trade-offs between security and executionspeed, to limit their footprints and enable applications such as real-time videostreaming.To improve this compromise, we study the use of bitslicing (or bitparallelism)to implement whiteboxes. Bitslicing is commonly used to writefast constant-time implementations of cryptographic algorithms and relies onthe synthesis of boolean circuits implementing the corresponding algorithms.The synthesis of optimal circuits for lookup tables is resource intensive andgenerally only performed once. In a whitebox context however, many randomlookup tables are generated at compile-time. We therefore require the booleancircuit generation to be time efficient.In this master thesis, we review the existing circuit-synthesis algorithms,and analyse their usability in the whitebox context. In particular, we studythe technique of Binary Decision Diagrams to generate efficient circuits ina cheap and adaptable manner. We implemented a flexible version of thisalgorithm as a C++ library. Eventually, we go through different techniques toevaluate the generated circuits and analyse the performances of our algorithm,and recommand the best parameters for the whitebox context. / Vit-låda kryptografi syftar till att skydda kryptografiska standardalgoritmersom körs i miljöer som kontrolleras av angripare, där angriparen kan läsa enhemlig nyckel direkt från minnet. Vanliga tillämpningar maskerar alla data vidkörning och bearbetar maskerade data med hjälp av många små förberäknadetabeller. Praktiska vit-låda innebär att man måste göra avvägningar mellansäkerhet och exekveringshastighet, för att begränsa deras fotavtryck och möjliggöratillämpningar som till exempel videoströmning i realtid.För att förbättra denna kompromiss studerar vi användningen av bitslicing(eller bit-parallelism) för att genomföra vit-låda. Bitslicing används vanligenför att skriva snabba konstanttidsimplementationer av kryptografiska algoritmeroch kräver syntes av boolska kretsar som implementerar motsvarande funktioner.Syntesen av optimala kretsar för uppslagstabeller är resurskrävande och utförsi allmänhet bara en gång. I ett vit-låda-sammanhang genereras dock mångaslumpmässiga uppslagstabeller vid kompilering, och därför kräver vi attgenereringen av boolska kretsar är tidseffektiv.I denna masteruppsats går vi igenom de befintliga algoritmerna för kretssyntesoch analyserar deras användbarhet i vit-låda-sammanhang. Vi studerar särskilttekniken med binära beslutsdiagram för att generera effektiva kretsar på ettbilligt och anpassningsbart sätt. Vi har implementerat en flexibel version avdenna algoritm som ett C++-bibliotek. Slutligen går vi igenom olika teknikerför att utvärdera de genererade kretsarna och analysera vår algoritms prestandaoch rekommenderar de bästa parametrarna för whitebox-kontexten. / La cryptographie en boîte blanche est connue comme protection pour desalgorithmes cryptographiques s’exécutant dans des environnements contrôléspar l’attaquant. L’approche classique consiste à remplacer les opérations pardes accès à des tables précalculées, ce qui a un coût en performance. Il estdifficile d’obtenir un bon compromis entre sécurité et vitesse d’exécution pourdes applications lourdes telles que la diffusion de contenus vidéos en tempsréel.Le parallélisme au bit ou bitslicing est utilisé en cryptographie traditionnellepour accélérer les implémentations, mais aussi en boîte blanche. Cettetechnique d’implémentation demande la synthèse d’un circuit booléen pourchaque table, recherche qui peut être très coûteuse en temps. En pratique, ilest commun de regénérer régulièrement toutes les tables utilisées dans uneboîte blanche pour renouveler sa défense, ce qui complique l’application dubit-parallélisme.Nous présentons dans cette thèse de master notre effort pour une synthèseefficace de circuits booléens à l’usage de la compilation de boîtes blanchesparallèles au bit. Nous publierons avec cet article une bibliothèque C++ etun module de compilation LLVM pour l’écriture d’implémentation bitslicée,avec un objectif de performance et de lisibilité.
7

Automatiskt bygge av FUS39A / Automated Build of FUS39A

Jansson, Chris January 2011 (has links)
This paper describes the design and implementation of an automated build system for the JAS39A simulator FUS39A at HiQ:s offices in Arboga. The assignment was to automate the process in which modules are built; the simulator is composed of a number of modules which are built manually at the end of each week, this process takes about a day of manual labor. The system can automatically build a module as either a scheduled service or by manual invocation. The system contains functionality for reporting the build results to any given recipient by e-mail. The purpose of the system is to free up the time put into manually building the modules for better suited tasks by automating the build of FUS39A. The assignment was split into two parts, an analysis part where information of the old system was gathered, tools and methods were chosen and the new system was designed. In the second part the system was implemented and tested. / Denna rapport beskriver designen och implementationen av ett system för automatiskt bygge av JAS39A simulatorn FUS39A vid HiQ:s kontor i Arboga. Målet var att automatisera bygget av modulerna som simulatorn består av då de i utgångsläget byggs manuellt mot en insats på en mandag i veckan. Systemet kan utan övervakning generera en modulutgåva genom en schemalagd tjänst eller en manuell invokering. Systemet innehåller även funktionalitet för att rapportera byggets resultat till avsedd mottagare via e-post. Syftet med systemet är att avlasta en persons arbetsbörda genom att automatisera bygget av mjukvaran i simulatorn FUS39A. Arbetet delades in i två delar, en analysfas där information om det nuvarande systemet samlas, verktyg väljs och designen av det nya systemet tas fram. I den andra delen implementeras och testas systemet.
8

Analyzing and Reducing Compilation Times for C++ Programs

Mivelli, Dennis January 2022 (has links)
Software companies often choose to develop in C++ because of the high performance that the language offers. Facilitated by static compilation and powerful optimization options, runtime performance is paid for with compilation time. Although the trade-off is inevitable to some extent, building very large C++ programs from scratch can take up to several hours if extra care is not taken during development. This thesis analyzes compilation times for C++ programs and shows how they can be reduced with the help of design patterns, implementation hiding, and framework related fixes. The results presented prove that compilation times can be decreased significantly with no drawbacks to the maintainability of a program. An in-depth analysis of compilation times and dependencies has been conducted for two large software modules from a representative company. Both modules take over an hour of CPU time each to compile. The time consumption for different compiler activities, such as parsing, preprocessing, and runtime optimization tasks have been measured for the modules. The compilation times for unit tests and mocks which use the GoogleTest framework have been analyzed. A simple method that may reduce compilation times by up to 50% for programs that use GoogleTest is presented. A dependency metric has been created, based on the number of include statements found recursively throughout a program. The dependency metric was found to be connected to compilation time for the two analyzed modules. Other factors that can influence compilation times are also shown, such as runtime optimization options, and the use of templates. Experiments which show how a typical usage of templates can drastically increase compilation times are presented. In addition, a solution which allows templates to be used while avoiding code bloat across translation units is reviewed. The solution effectively rivals non-template code in terms of compilation time. The Pointer to Implementation (PImpl) and Dependency Injection design patterns have been used to refactor a small program. Both design patterns performed well, reducing the total compilation time and total compiler memory usage by 70%. A program that detects dependency cycles has been created, but no cycles were found in any of two modules from the representative company.

Page generated in 0.1103 seconds