haku: @supervisor Tarhio, Jorma / yhteensä: 69
viite: 8 / 69
Tekijä:Sykäri, Antti
Työn nimi:Compile-time metaprogramming and its implementation
Käännösaikainen metaohjelmointi ja sen toteutus
Julkaisutyyppi:Diplomityö
Julkaisuvuosi:2010
Sivut:[6] + 66 s. + liitt. 10      Kieli:   eng
Koulu/Laitos/Osasto:Informaatio- ja luonnontieteiden tiedekunta
Oppiaine:Ohjelmistotekniikka   (T-106)
Valvoja:Tarhio, Jorma
Ohjaaja:
OEVS:
Sähköinen arkistokappale on luettavissa Aalto Thesis Databasen kautta.
Ohje

Digitaalisten opinnäytteiden lukeminen Aalto-yliopiston Harald Herlin -oppimiskeskuksen suljetussa verkossa

Oppimiskeskuksen suljetussa verkossa voi lukea sellaisia digitaalisia ja digitoituja opinnäytteitä, joille ei ole saatu julkaisulupaa avoimessa verkossa.

Oppimiskeskuksen yhteystiedot ja aukioloajat: https://learningcentre.aalto.fi/fi/harald-herlin-oppimiskeskus/

Opinnäytteitä voi lukea Oppimiskeskuksen asiakaskoneilla, joita löytyy kaikista kerroksista.

Kirjautuminen asiakaskoneille

  • Aalto-yliopistolaiset kirjautuvat asiakaskoneille Aalto-tunnuksella ja salasanalla.
  • Muut asiakkaat kirjautuvat asiakaskoneille yhteistunnuksilla.

Opinnäytteen avaaminen

  • Asiakaskoneiden työpöydältä löytyy kuvake:

    Aalto Thesis Database

  • Kuvaketta klikkaamalla pääset hakemaan ja avaamaan etsimäsi opinnäytteen Aaltodoc-tietokannasta. Opinnäytetiedosto löytyy klikkaamalla viitetietojen OEV- tai OEVS-kentän linkkiä.

Opinnäytteen lukeminen

  • Opinnäytettä voi lukea asiakaskoneen ruudulta tai sen voi tulostaa paperille.
  • Opinnäytetiedostoa ei voi tallentaa muistitikulle tai lähettää sähköpostilla.
  • Opinnäytetiedoston sisältöä ei voi kopioida.
  • Opinnäytetiedostoa ei voi muokata.

Opinnäytteen tulostus

  • Opinnäytteen voi tulostaa itselleen henkilökohtaiseen opiskelu- ja tutkimuskäyttöön.
  • Aalto-yliopiston opiskelijat ja henkilökunta voivat tulostaa mustavalkotulosteita Oppimiskeskuksen SecurePrint-laitteille, kun tietokoneelle kirjaudutaan omilla Aalto-tunnuksilla. Väritulostus on mahdollista asiakaspalvelupisteen tulostimelle u90203-psc3. Väritulostaminen on maksullista Aalto-yliopiston opiskelijoille ja henkilökunnalle.
  • Ulkopuoliset asiakkaat voivat tulostaa mustavalko- ja väritulosteita Oppimiskeskuksen asiakaspalvelupisteen tulostimelle u90203-psc3. Tulostaminen on maksullista.
Sijainti:P1 Ark Aalto     | Arkisto
Avainsanat:compile-time metaprogramming
programming language design
kernel languages
c
käännösaikainen metaohjelmointi
ohjelmointikielisuunnittelu
ydinkielet
c
Tiivistelmä (fin): Metaohjelmointi on ohjelmointiparadigma, jossa ohjelmat voivat muokata, luoda ja analysoida toisia ohjelmia.
Ohjelmointikielen kääntäjä voidaan varustaa käännösaikaisilla metaohjelmointiominaisuuksilla, jotka mahdollistavat sen, että käännettävät ohjelmat voivat analysoida ja laajentaa itseään.
Näin ohjelmien abstraktiotasoa voidaan kohottaa ja tehdä niistä ylläpidettävämpiä, nopeampia ja luotettavampia.

Tässä diplomityössä esitellään KernelC, C:stä johdettu ohjelmointikieli, jossa on metakieli jolla voidaan käsitellä KernelC:llä kirjoitettuja ohjelmia.
Kieli koostuu neljästä pääosasta.
Ydinkieli, joka on mahdollisimman pieni joukko C:n laskennalliselle luonteelle ominaisia ominaisuuksia, muodostaa perustan.
Laajennettu kieli, joka toteuttaa joukon C:stä tuttuja hyödyllisiä rakenteita, on rakennettu ydinkielen päälle.
Käännösaikainen metaohjelmointilaajennus tarjoaa Common Lispin kaltaiset makrot ja operaattorin, jolla voidaan eksplisiittisesti ajaa ohjelmakoodia käännösaikana.
Neljäs pääosa, syntaksilaajennustoiminnallisuus, muodostaa käännösaikaisen metaohjelmointilaajennuksen kanssa yhdessä metakielen, jolla kieltä voidaan saumattomasti laajentaa.

Metakieli osoittautuu tarpeeksi voimakkaaksi, jotta sillä voidaan toteuttaa useimmat laajennetun kielen ominaisuuksista ydinkielen avulla.
Vaikka tuloksena saatava kieli ei ole ihanteellisesti sopiva jokapäiväiseen ohjelmointiin, KernelC on mielenkiintoinen kokeilu C-johdannaisten ohjelmointikielten joukossa, jotka harvoin käyttävät hyödykseen metaohjelmointiominaisuuksia.
Tiivistelmä (eng): Metaprogramming is a programming paradigm where programs manipulate, generate, and analyze other programs.
A compiler for a programming language can be equipped with a compile-time metaprogramming facility that allows the program to analyze and extend itself.
This can raise the level of abstraction in the programming language and make programs faster, more maintainable, and more reliable.

This thesis presents KernelC, a programming language derived from C that is equipped with a metalanguage that can be used to manipulate programs written in KernelC.
The language consists of from major building blocks.
The kernel language, a minimal set of language features that represent the computational core of C, forms the foundation.
The extended language, which provides a set of convenient language features familiar from C, builds on the kernel language.
The compile-time metaprogramming (CTMP) extension provides Common Lisp-like macros and an explicit operator to run code during compile time.
Finally, the syntax extension facility complements the CTMP extension to form a metalanguage that can he used to build language extensions seamlessly into the language.

The metalanguage proves powerful enough to implement most of the features in the extended language in terms of the kernel language.
Although the resulting language is not ideally suited for everyday programming, KernelC is an interesting experiment in the field of C-derived languages, where metaprogramming facilities are rarely seen.
ED:2010-09-01
INSSI tietueen numero: 40372
+ lisää koriin
INSSI