Семантички-оријентисано програмирање

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу

Семантички оријентисано програмирање (SOP) је парадигма програмирања у којој програмер формулише логику домена путем семантичке структуре. Концептно програмирање је слично као и концептно оријентисано програмирање.[1][2]

Заједничке карактеристике[уреди]

Начин на који су ове семантичке информације представљене у систему варирају у зависности од изабраног приступа (види доле), заједничко овим приступима су следеће карактеристике:

  • Семантика представља статичке чињенице, да су: чињенице које описују домен у питању у датом тренутку, и који се не мењају током рантајма (за разлику од семантичког Веба, на пример)
  • Систем има природан приступ овим семантичким структурама током времена компилације и рантајму, и да их тумаче како би испунили тражене карактеристике
  • Делимично одвајање од логике и имплементације (где је то могуће)
  • У многим случајевима, SOP подржава идеју јединственог извора истине (јии), тако да се сваки семантички концепт сачува тачно једном, евентуалне везе до овог концепта само по референци
  • Програмер може слободно и брзо додати нова семантичка значења без прекидања компатибилности са околиним система

Циљеви[уреди]

Циљеви SOP-а су:

  • Побољшање одржавања једног софтвера
  • Побољшање транспарентности софтвера
  • Флексибилност дозвољавајући разменљивост логике или имплементације
  • Оптимална подршка за агилне развојне процесе (рефакторисање)

SOPlets[уреди]

Soplets је метод за описивање семантичких концепта као блокове кода, користећи постојеће карактеристике (Јава) језика, наиме примедбе и набрајања. Сваки блок кода (који се зове Soplet) представља све особине и карактеристике датог концепта (колико разумно и изводљиво), укључујући могућности изван традиционалног моделирања обима, као што је превод, документација, праћење обавеза и тако даље.

Soplets се може указати и користити са било ког места унутар кода. С обзиром на снажно-откуцану природу референци оне могу бити безбедно реконструисане као што предстоји.

Soplet може бити побољшан са једном или више (држављанства) функција које су директно везане за блок кода. На тај начин повезане карактеристике које се односе на дати концепт (као што су калкулације, валидације, трансформације итд) изван чистих кључ-вредности парова могу бити повезане са датим Soplet-ом.

Структура Soplet-а је формално дефинисан стереотип имплементације. Овај стереотип се може појединачно састојати од неколико аспеката (као што су транслатабле, беанабле, биндабле, тестабле, итд), што заузврат може слободно бити дефинисан од стране програмера (или неки део оквира који је користи).

Отворен извор додатак (на основу пројекта Lombok додатак) омогућава стварање бајт-кода приликом компилације времена, на основу информација садржаних у Soplets-у. На пример, податак бин може имати све своје атрибуте, апсорпција и сет генерисање.

SymADE[уреди]

SymADE (симболичко прилагодљиво развојно окружење) је отворен извир IDE-а и спровођење SOP (семантичко-оријентисано програмирање) парадигме.

У SymADE-у програм је изменио и чувао га као стабло семантичких чворова (значења). Стабло је изменио структуирани уредник, и програмери га сада могу мењати или семантичко стабло директно или пројекцију семантичког стабла на синтаксном стаблу. Може постојати више пројекција истог стабла, и оне могу бити изречене на екрану као тркдт, као UML дијаграми и тако даље.

Семантичко значење је потпуно кориснички дефинисано. Ово омогућава да се користити SymADE за креирање и уређивање нових домена специфичних језика, измене постојећег језика, користи у истом комаду код мешавине више језика.

SymADE је уобичајено у духу са NP-ом (намерно програмирање) и JetBrains MPS-ом. Основна разлика је у томе што се дефинишу и уређују синтаксна стабла, али у SymADE се креирају и уређују семантичка стабла. То даје могућност невезивања за аутоматизован код писања, односно стварни број може бити написан од стране рачунара на основу дијалога интеракцији са програмерима. И  узрок, пројекат SymADE је отвореног кода, за разлику од власничког NP-а и MPS развојног окружења.

Што је већа аутоматизација код писања ће омогућити да се створе сложенији програми без повећања количине апстракције слојева - јер рачунар, не програмери, ће се побринути за сложеност кода. Ово ће омогућити да се пишу сложенији програми без повећања захтеве ресурса (брзина процесора и величине меморије).

Види још[уреди]

Референце[уреди]

Спољашње везе[уреди]