| dc.contributor.advisor | GAVRILIȚA, Mihail | |
| dc.contributor.advisor | COJOCARU, Svetlana | |
| dc.contributor.author | SCRIPCA, Lina | |
| dc.date.accessioned | 2026-02-26T13:37:13Z | |
| dc.date.available | 2026-02-26T13:37:13Z | |
| dc.date.issued | 2026 | |
| dc.identifier.citation | SCRIPCA, Lina. Comparative analysis of functional programming and object-oriented programming through the evolution of modern languages. Teză de master. Programul de studiu Ingineria software. Conducător ştiinţific GAVRILIȚA Mihail, asist. univ. Universitatea Tehnică a Moldovei. Chișinău, 2026. | en_US |
| dc.identifier.uri | https://repository.utm.md/handle/5014/35494 | |
| dc.description | Fişierul ataşat conţine: Abstract, Contents, Introduction, Bibliography. | en_US |
| dc.description.abstract | The work begins by outlining the theoretical foundations that inform both paradigms, providing a historical context for their emergence, their defining characteristics, and the motivations that guided their adoption in academia and industry. Particular attention is given to the contrasts between the two approaches, the rise of functional programming as a response to growing system complexity, and prior studies that examine its relationship to code quality, maintainability, and correctness. The next chapter shifts towards a detailed examination of the evolution of three widely used programming languages: Java, Python, and JavaScript. Each subsection traces the development of the language from its inception, analyzes the original design principles that shaped its identity, and presents a chronological overview of the functional programming features introduced over time, serving as case studies demonstrating how languages adapt under pressure from technological trends, ecosystem demands, and shifts in programming practices. The final chapter compares object-oriented and functional programming styles from the perspective of solution design. It investigates how each paradigm approaches data flow, state management, and abstraction through the lens of competitive programming problems. Rather than assessing which paradigm is superior, the chapter focuses on how object-oriented languages can express both object-oriented and functional solutions, and how these compare syntactically and structurally with implementations written in a functional language such as Elixir. Through this analysis, the paper argues that the increasing presence of functional programming concepts within traditionally object-oriented languages is not an arbitrary evolution, but a direct response to modern software requirements that emphasize concurrency, immutability, and composability. The findings illustrate that contemporary programming practice benefits from a multi-paradigm model in which the strengths of both approaches can be combined to produce more robust and maintainable systems. | en_US |
| dc.description.abstract | Lucrarea începe prin conturarea fundațiilor teoretice care stau la baza ambelor paradigme, oferind un context istoric referitor apariției lor, prin definirea caracteristicilor definitorii și motivațiilor care au ghidat adoptarea acestora în mediul academic și în industrie. O atenție deosebită este acordată contrastelor dintre cele două paradigme, popularizarii programării funcționale ca răspuns la creșterea complexității sistemelor, precum și studiilor anterioare care examinează relația acesteia cu calitatea codului, mentenabilitatea și corectitudinea. Capitolul următor se îndreaptă spre o examinare detaliată a evoluției a trei limbaje de programare larg utilizate: Java, Python și JavaScript. Fiecare subsecțiune urmărește dezvoltarea limbajului încă de la începuturile sale, analizează principiile originale de proiectare care i-au definit identitatea și prezintă o recapitulare cronologică a introducerii elementelor de programare funcțională de-a lungul timpului in acestea, servind drept studii de caz care ilustrează modul în care limbajele se adaptează sub presiunea tendințelor tehnologice, a cerințelor ecosistemului și a schimbărilor din practicile de programare. Ultimul capitol compară programarea orientată pe obiecte și programarea funcțională din perspectiva proiectării soluțiilor. Acesta analizează modul în care fiecare paradigmă abordează fluxul de date, gestionarea stării și abstractizarea prin prisma problemelor de programare competitivă. Fără a evalua superioritatea uneia dintre paradigme, capitolul se concentrează asupra modului în care limbajele orientate pe obiecte pot exprima atât soluții orientate pe obiecte, cât și funcționale, și asupra comparației sintactice și structurale dintre acestea și implementări realizate într-un limbaj funcțional precum Elixir. Prin această analiză, lucrarea susține că prezența tot mai accentuată a conceptelor de programare funcțională în limbaje tradițional orientate pe obiecte nu reprezintă o evoluție arbitrară, ci un răspuns direct la cerințele software-ului modern, care pune accent pe concurență, imutabilitate și compozabilitate. Rezultatele ilustrează faptul că practica de programare contemporană beneficiază de un model multi paradigmă, în cadrul căruia punctele forte ale ambelor abordări pot fi combinate pentru a produce sisteme mai robuste și mai ușor de întreținut. | en_US |
| dc.language.iso | en | en_US |
| dc.publisher | Universitatea Tehnică a Moldovei | en_US |
| dc.rights | Attribution-NonCommercial-NoDerivs 3.0 United States | * |
| dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/us/ | * |
| dc.subject | modern languages | en_US |
| dc.subject | functional programming | en_US |
| dc.subject | programming languages | en_US |
| dc.title | Comparative analysis of functional programming and object-oriented programming through the evolution of modern languages | en_US |
| dc.title.alternative | Analiza evoluției limbajelor de programare moderne în raport cu programarea funcțională. Implicații pentru formarea curriculară în domeniul informaticii | en_US |
| dc.type | Thesis | en_US |
The following license files are associated with this item: