Generativno programiranje

Prema definiciji (Eisenecker, 1998.), generativno programiranje (GP) predstavlja

"... dizajniranje i implementaciju programskih modula koji se mogu kombinirati radi generiranja visoko specijaliziranih i optimiziranih sustava koji omogućuju rješavanje specifičnih zadataka.".

Odnosno, možemo reći da GP predstavlja disciplinu automatskog programiranja, koja se pod tim nazivom pojavljuje potkraj 90-tih godina.

Osnovne karakteristike GP uredi

( u odnosu na druge discipline automatskog programiranja)

  • fleksibilnost u odnosu na druge tehnike automatskog programiranja:
    • izrada aplikacija korištenjem više generatora
    • modifikacije generatora
  • optimizacija
    • proizlazi iz težnje da se u generirane aplikacije ugrađuju samo potrebna svojstva, umjesto korištenja generičkih komponenti

Dakle, radi se o pristupu izradi aplikacija na način da se ne usmjerava cijeli napor samo na pojedinu ciljnu aplikaciju, nego i na generator, koji osim pojedine aplikacije, može automatski generirati i ostale aplikacije iz problemske domene koju pokriva. Pojedina aplikacija za generiranje zadaje se specifikacijom u nekom od jezika specifičnih za problemsku domenu (eng. DSL - Domain Specific Language), za razliku od općih programskih jezika, koji nisu ograničeni na određenu problemsku domenu.

Temeljne discipline GP uredi

GP, kao relativno nova programerska disciplina, uključuje nekoliko temeljnih disciplina:

Literatura uredi

  • Krzysztof Czarnecki and Ulrich W. Eisenecker:"Generative Programming: Methods, Tools, and Applications", Addison Wesley, 2000. (temeljna knjiga za GP)

Vanjske poveznice uredi