Sökresultat:
10 Uppsatser om Kompilering - Sida 1 av 1
Funktionsexpansion i GCC : Utvärdering av de IPO-baserade funktionsexpansionsfaserna i GCC samt hur de kan påverkas av kompilatorflaggor
Funktionsexpansion är ett viktigt koncept inom mjukvaruoptimering, det ämnar att minska programmets körtid till kostnad av programmets storlek. Denna rapport presenterar möjligheter för hur användare kan justera expansionen i GCC samt redovisar resultaten i körtid och programstorlek. Två GCC-flaggor för funktionsexpansion har studerats och testats vid Kompilering av fyra olika Unix-verktyg. Resultat visar att det är svårt att uppnå förbättringar vid justering av flaggorna och att antalet iterationer av de tidiga expansionsfaserna i GCC bör öka i takt med att optimeringsnivån ökar..
Studie av utvecklingsverktyg med inriktning mot PLC-system
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.
Studie och implementation av dynamisk översättning i en Chip-8 emulator
Dynamisk binär översättning är en teknik för att köra program kompilerade för en plattform på en annan inkompatibel plattform. Tekniken finns bland annat implementerad i många konsolemulatorer, men det finns även andra exempel där tekniken använts, t.ex. vid arkitekturskiften. Nära besläktade områden är dynamisk Kompilering och dynamisk optimering. För att undersöka tekniken (dynamisk översättning) närmare implementerades den i en, redan färdig, interpretativ (switch-baserad) Chip-8 emulator.
Utvinning av kontrakt i C++ för användning i dokumentation
Detta arbete syftar till att undersöka hur kontrakt kan utvinnas från programkod för att skapa dokumentation som andra programmerare kan använda för att förstå hur programkoden ska användas. Kontrakt i kod fungerar både som ett sätt att hitta fel och som dokumentation så om den försvinner, exempelvis vid Kompilering, kan koden bli oanvändbar för andra.I arbetet görs en implementation vilket resulterar i ett program som kan hitta kontrakt i C++-kod och skapa XML-utdata med information om kontrakten. Programmet kan skapa mer avancerad dokumentationen genom förståelse för hur kontrakt fungerar i samband med arv. En utvärdering genom experiment av programmet visar att det har potential att bli ett användbart verktyg som underlättar återanvändning och dokumentering av programkod, men den nuvarande implementationen kan bara hantera en lite del av C++ och är därför inte praktiskt användbar..
Digital tentamen på läsplattor
Syftet med detta projekt är att skapa en prototyp för ett digitalt tentamenssystem, där studenterna skriver tentamen med hjälp av läsplattor, samt utvärdera vilka fördelar och nackdelar ett sådant system skulle kunna medföra.Huvudfokuset för detta projekt var att utveckla en prototyp för ett digitalt tentamenssystem med stöd för bland annat automatisk rättning, Kompilering och automatisk evaluering av programspråksfrågor. Vi försöker samtidigt bibehålla de positiva aspekterna av ett analogt system, som till exempel möjlighet för både lärare och elev att uttrycka sig genom frihandsritning.Denna studie har visat att det finns många fördelar för både studenter och lärare med en övergång till ett digitalt tentamenssystem samt att man med små medel kan skapa en fungerande prototyp av ett sådant system..
Hållbar utveckling i en innovations- och produktutvecklingsprocess : Vad innebär det för innovatören och kunden?
Detta arbete syftar till att undersöka hur kontrakt kan utvinnas från programkod för att skapa dokumentation som andra programmerare kan använda för att förstå hur programkoden ska användas. Kontrakt i kod fungerar både som ett sätt att hitta fel och som dokumentation så om den försvinner, exempelvis vid Kompilering, kan koden bli oanvändbar för andra.I arbetet görs en implementation vilket resulterar i ett program som kan hitta kontrakt i C++-kod och skapa XML-utdata med information om kontrakten. Programmet kan skapa mer avancerad dokumentationen genom förståelse för hur kontrakt fungerar i samband med arv. En utvärdering genom experiment av programmet visar att det har potential att bli ett användbart verktyg som underlättar återanvändning och dokumentering av programkod, men den nuvarande implementationen kan bara hantera en lite del av C++ och är därför inte praktiskt användbar..
Automatiskt bygge av FUS39A
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.
Function Practice : Ett verktyg för att öva programmering
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.
Middleware med Google Web Toolkit
Detta examensarbete har utförts i samarbete med företaget Systemagic AB. Systemagic är ett teknikföretag vars expertis ligger inom mjukvaruutveckling inom IPTV-teknologi. Detta innefattar bland annat utveckling av middleware till digitalboxar, också kallade Set-top-boxar.Middleware är den mjuk- och hårdvaruinfrastruktur som sammankopplar de olika delarna av ett IPTV-system. Det är ett distribuerat operativt system som både finns på operatörens servrar samt i slutanvändarens digitalbox. Då det idag ställs allt högre krav på funktionalitet och dynamik från beställare blir utvecklingen av ett modernt middleware mycket resurskrävande. Systemagic anser att en stor bidragande orsak till den resurskrävande utvecklingsprocessen kan kopplas till användningen av scriptspråket JavaScript och är därför intresserade av alternativa metoder.Google Web Toolkit (GWT) är ett Java-ramverk som kan användas för att på ett snabbt och smidigt sätt utveckla interaktiva webbapplikationer. Detta möjliggörs genom att all utveckling sker i Java.
Minimumkrav för ett CI-system
När en grupp utvecklare jobbar med samma kodbas kan konflikter uppstå med avseende på implementationen av moduler eller delsystem som varje utvecklare individuellt jobbar på. Dessa konflikter måste snabbt lösas för att projektet ska fortskrida och inte stagnera. Utvecklare som sällan kommunicerar framför ofta okompatibla moduler eller delsystem som kan vara svåra eller omöjliga att integrera i kodbasen, detta leder ofta till s.k. ?integration hell? där det kan ta väldigt lång tid att anpassa ny kod till en befintlig kodbas.
En strategi som man kan ta till är ?continuous integration?, ett arbetssätt som erbjuder en rad fördelar när man jobbar i grupp på en gemensam kodbas.