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

Date

2001

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, Eljas

Thesis advisor

Huima, Antti

Keywords

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

Other note

Citation