Show simple item record

Consultant
dc.contributor.advisor
Porkoláb, Zoltán
Author
dc.contributor.author
Baráth, Áron 
Availability Date
dc.date.accessioned
2019-04-11T12:44:15Z
Availability Date
dc.date.available
2019-04-11T12:44:15Z
Release
dc.date.issued
2018
Abstract
dc.description.abstract
Az aktuális mainstream programozási nyelvek számos biztonsági problémával küszködnek, melyek eredetileg azért lettek bevezetve, mert kényelmesnek és hasznosnak tűnt, azonban később kiderült, hogy ezek a nyelvi elemek ártalmasak is lehetnek. Bár ezek a nyelvek folyamatosan fejlődnek, gyakran meg van kötve a kezük a visszafelé-kompatibilitás miatt. Manapság is új nyelveket készítenek, hogy kijavítsák a hiányosságokat vagy új nyelvi paradigmákat alkossanak. Az első tézisben különböző észlelt problémákat mutatunk be, melyek a programozási nyelvek szintaktikájából erednek. Annak érdekében, hogy el tudjuk kerülni ezeket a problémákat, mi egy sokkal szigorúbb kódolási konvenciót ajánlunk a meglévő nyelvekhez, illetve szigorú szabályokat új nyelvek fejlesztőinek. Ezen szabályok a módosíthatatlan függvény paramétereket, kifejezőbb vezérlési szerkezeteket, valamint a bővíthető operátok-készletet részesítik előnyben. Az aktuális mainstream nyelvek továbbá néhány szemantikai problémával is küszködnek, melyet a második tézisben tárgyalunk. Az implicit konverziókat gyakran megengedik a nyelvek, de ezek nem várt viselkedést okozhatnak. Annak érdekében, hogy C++ nyelvben elkerüljük ezeket a szituációkat egy wrapper-osztály-alapú megoldást. A C++11 move-szemantikája helyes használata esetén csökkenteni tudja a másolásokat. Specifikáltunk és implementáltunk egy algoritmust, mellyel detektálható a move-szemantika helytelen használata. Közismert tény, hogy egy szoftver fejlesztési költsége csak a töredéke a teljes költségnek. Annak érdekében, hogy csökkenteni tudjuk a karbantartási költséget, különböző támogatásokat várunk el a programozási nyelvtől. Ezeket analizáljuk a harmadik tézisben. Ilyen például a bináris kompatibilitás gyenge támogatottsága, valamint a fordítási-idejű tesztelés is. Megoldásokat is javasolunk ezekre a problémákra. Annak érdekében, hogy bizonyítsuk, a javaslataink életképesek, implementáltuk ezeket a Welltype nevű prototípus programozási nyelvben, melyet az eredményeink szerint terveztünk. Külön fejezetben részletezzük ezt a nyelvet, mely egy multi-paradigmás nyelvi elemekkel bővített imperatív nyelv. A teljes fejlesztői környezet elérhető nyílt-forrású szoftverként.hu_HU
Language
dc.language
angolhu_HU
Title
dc.title
Towards safer programming language constructshu_HU
Language
dc.language.rfc3066
eng
Language
dc.language.rfc3066
eng
Language
dc.language.rfc3066
hun
Rights
dc.rights.holder
A doktori disszertációk szerzői jogvédelem alatt állnak, csak a szerzői jogok maradéktalan tiszteletben tartásával használhatók.hu_HU
Abstract in English
dc.description.abstracteng
Current mainstream programming languages suffer numerous safety issues that originally introduced to be convenient and practical, but later turned out these features can be harmful. Although, these programming languages continuously evolving, they usually have a limitation due to backward compatibility. New languages are being created today to fix issues or introduce new paradigms. In thesis 1 we describe various software issues related to language syntax based on real industrial experiences. To avoid these problems we suggest strict coding conventions for existing languages and rigorous syntactical rules for new languages. Rules include to prefer immutable memory as default function arguments, more expressive control flow and better ways to define operators. Current mainstream languages also suffer some semantical problems what we discuss in thesis 2. Implicit conversions usually allowed in this languages but they may lead to unwanted behavior. To avoid such cases in C++ we introduced a wrapper class based solution. The C++11 move semantics may reduce copy operations when implemented properly. We specified an algorithm and implemented a prototype tool to detect possible misuse of the move semantics. It is well-known that the costs of software development is only the fragment of its all maintenance cycle. In order to reduce maintenance costs, we may demand various services from the programming languages. We analyze such features in thesis 3. As an example, mainstream languages give no support for handle the binary compatibility issues among different library versions. Compile time testing is also rarely supported. We suggest solutions for these problems. In order to prove that the design decisions we proposed in the earlier theses viable, we implemented Welltype, a prototype programming language that designed according our findings. Our language, is imperative with additional multi-paradigm language elements and available as open source with a full development tool-chain.hu_HU
Name of Committee Member (a title, degree)
dc.description.commemb
Gregorics Tibor, egyetemi docens, phdhu_HU
Name of Committee Member (a title, degree)
dc.description.commemb
Király Roland, főiskolai docens, phdhu_HU
Name of Committee Member (a title, degree)
dc.description.commemb
Tejfel Máté, egyetemi docens, phd, dr. habil.hu_HU
Name of Committee Member (a title, degree)
dc.description.commemb
Schrettner Lajos, csoportvezető, phdhu_HU
Official reviewer (a title, degree)
dc.description.reviewer
Lengyel László, egyetemi docens, phdhu_HU
Official reviewer (a title, degree)
dc.description.reviewer
Illés Zoltán, egyetemi docens, phd, dr. habil.hu_HU
Scope
dc.format.page
137hu_HU
Doi ID
dc.identifier.doi
10.15476/ELTE.2018.217
MTMT ID
dc.identifier.mtmt
30630202
Opac ID
dc.identifier.opac
http://opac.elte.hu/F?func=direct&doc_number=964507
Language
dc.language.other
angolhu_HU
Language
dc.language.other
magyarhu_HU
Discipline Discipline +
dc.subject.discipline
Műszaki tudományok/Informatikai tudományokhu_HU
Keyword English
dc.subject.en
programming languageshu_HU
Keyword English
dc.subject.en
C++hu_HU
Keyword English
dc.subject.en
coding guidelineshu_HU
Keyword English
dc.subject.en
type systemhu_HU
Keyword English
dc.subject.en
linkinghu_HU
Graduate schools / programs
dc.subject.prog
Informatika D. I./Az informatika alapjai és módszerei.hu_HU
Title in other languages ​​
dc.title.translated
Biztonságosabb programozási nyelvi konstrukciókhu_HU
Class
dc.type.genre
phdhu_HU
Type
dc.type.resrep
Tudományoshu_HU
Author
dc.contributor.inst
ELTE IK PHD/Informatika D. I.hu_HU
Goalkeeping Day
dc.date.defended
2019-03-20
Keywords
dc.subject.hu
programozási nyelvekhu_HU
Keywords
dc.subject.hu
C++hu_HU
Keywords
dc.subject.hu
kódolási iránymutatásokhu_HU
Keywords
dc.subject.hu
típus rendszerhu_HU
Keywords
dc.subject.hu
linkeléshu_HU
Chairman of the Evaluation Committee (a title, degree)
dc.description.compres
Horváth Zoltán, egyetemi tanár, phd, dr. habil.hu_HU
Resolution dated
dc.date.decreedate
2019-04-04
date of submission
dc.date.presented
2018-11-10


Files in this item

Towards safer programming language constructs
Towards safer programming language constructs
Towards safer programming language constructs
 

This item appears in the following Collection(s)

Show simple item record