Funkcionalno programiranje u Swift jeziku

Funkcionalno programiranje je deklarativna programska paradigma zasnovana na lambda računu, u kojoj se programi tretiraju kao niz matematičkih funkcija. Iako poseduje nekoliko važnih praktičnih prednosti u odnosu na proceduralno programiranje, paradigma je do nedavno bila slabo prisutna u jezicima koji su najzastupljeniji u industriji, najverovatnije zbog svojih akademskih korena i stroge matematičke terminologije. Ovo se poslednjih godina polako menja sa pojavom modernih funkcionalnih jezika kao što su Scala i Clojure (koji mogu da se koriste na Java platformi), F# (.NET platforma) itd.

Swift je novi programski jezik razvijen u kompaniji Apple. Razvoj Swift-a je započet 2010. godine, a prva verzija je objavljena u junu 2014. godine. Dugoročni cilj njegovih autora je da zamene vremešni Objective-C jezik za razvoj iOS i OS X aplikacija. Nakoliko osobina Swift jezika, kao što su funkcije prvog reda, sofisticirani sistem tipizacije, lambda izrazi, korišćenje Karijevih funkcija i parcijalna aplikacija, algebarski tipovi podataka itd, čine jezik posebno pogodnim za pisanje funkcionalnih programa. U ovom radu su analizirane prednosti i mane primene funcionalnih svojstava Swift jezika za razvoj iOS i OS X aplikacija.

Pomenuta svojstva su upoređena sa ekvivalentnim svojstvima programskih jezika Haskell i F#. U radi je pokazano da se Swift, u praksi koristi za pisanje kraćih, elegantnijih i sigurnijih programa, koji su lakši za održavanje, nadgradnju i testiranje. Međutim, takođe se pokazuje da funkcionalni stil u pojedinim slučajevima dovodi do smanjenih performansi u odnosu na ekvivalentni imperativni kôd, te se o tome mora voditi računa. Često postoji više načina da se odgovarajuća funkcionalna apstrakcija implementira (npr. korišćenjem operatora, globalnih funkcija ili metoda). U radu su analizirani, različiti mogući pristupi radi odabira onih koji su prirodniji za Swift jezik sa tehničke i praktične strane.

Autor: Ivica Milovanović

Mentor: prof. dr Dušan Tošić 

Ovde možete pročitati rad u celosti

 

3618-funkcionalno-programiranje-u-swift-jeziku