A Portable Compiler for Full ASN.1
No Thumbnail Available
URL
Journal Title
Journal ISSN
Volume Title
Helsinki University of Technology |
Diplomityö
Checking the digitized thesis and permission for publishing
Instructions for the author
Instructions for the author
Authors
Date
2001
Department
Major/Subject
Ohjelmistotekniikka
Mcode
Tik-106
Degree programme
Language
en
Pages
(6) + 65 s. + liitt. 7
Series
Abstract
Siirrettäessä tietoa systeemistä toiseen, on tärkeää että tiedon formaatti on tarkasti määritelty, koska tietokoneet eivät osaa tulkita tietoa. Monet ohjelmistovirheet ovat johtuneet tietokoneen kyvyttömyydestä tulkita tietoa oikein. Erityisesti kommunikaatio kahden erilaisen tietokoneen välillä on altis virheille, koska tiedon sisäinen esitystapa on erilainen monissa systeemeissä. ASN. 1 on formaali kieli tiedon ja informaation määrittelyyn. Sitä voidaan käyttää tehokkaasti mm. ohjelmistojen määrittely- ja suunnitteluvaiheessa kuvaamaan siirrettävän tiedon sisältöä ottamatta kuitenkaan kantaa siihen, missä muodossa tieto loppujen lopuksi siirretään. ASN.1-määritelmät yhdessä koodaussääntöjen kanssa määrittävät tarkasti tiedon formaatin, joka on riippumaton käytettävästä laitteistosta ja käyttöjärjestelmästä. ASN. 1 onkin tällä hetkellä hallitseva menetelmä tiedon määrittelyyn. ASN.1 on kieli, joka määrittelee informaation tietosisällön. Se ei kuitenkaan ole ohjelmointikieli. Kun ohjelma, jonka välittämä tieto on kuvattu ASN.1-kielellä toteutetaan, täytyy tietorakenteet koodata ohjelmointikielelle. Tässä työssä esitellään ohjelmisto, joka kääntää ASN. 1-kieltä automaattisesti C-kielelle. Ohjelmisto tuottaa ASN.1-määritelmän kuvaamat tietorakenteet sekä funktiot, jotka muuntavat tietoa C-kielen käyttämästä muodosta BER-koodaussääntöjen muotoon. Tällaisia työkaluja kutsutaan ASN.1-kääntäjiksi (ASN.1 compilers). Työ sisältää lyhyen johdannon kääntäjäteoriaan. Siinä esitellään myös eräitä vaikeuksia ASN.1-kielen jäsentämisessä. Esitelty ASN. 1-kääntäjä tuottaa funktiot, jotka muuntavat tietoa muodosta toiseen. Muistinkäytön minimoimiseksi tuotetut funktiot on toteutettu konekieltä muistuttavan kielen avulla. Työssä on estelty näennäissuoritin, joka ymmärtää tuotettua kieltä ja suorittaa sitä. Työn lopussa vertaillaan kehitettyä kääntäjää muihin olemassa oleviin kääntäjiin, ja tulosten perusteella voidaan sanoa, että kehitetyssä kääntäjässä on monia ainutlaatuisia ominaisuuksia. Kääntäjä osaa muun muassa automaattisesti muuttaa tuottamiaan tietorakenteita käyttämään olemassa olevia tietotyyppejä, mikä helpottaa aikaisemmin käytettyjen ohjelmistojen liittämistä järjestelmiin.Description
Supervisor
Soisalon-Soininen, EljasThesis advisor
Huima, AnttiKeywords
ASN.1, ASN.1, byte-code, konekieli, C language, C-kieli, compiler, kääntäjä, context-free grammar, ohjelmistojen määrittely, lexical analysis, sanastollinen analyysi, semantic analysis, semanttinen analyysi, software specification, tyyppimuunnokset, type conversion, virtuaalikone, virtual machine, yhteysvapaat kieliopit