Return to search

Paradigmskifte i programmeringen : Innebörden av funktionell programmering vid programutveckling

Tecken finns på att det objektorienterade paradigmet börjar tappa sinstatus som den oomstridda lösningen inom systemutveckling. Nya idéerkommer in och ställer grundläggande programmeringsprinciper påända. Vad kan ett deklarativt förhållningsätt tillföra och vad innebär detatt programmera funktionellt? Variabler är en viktig komponent i denprogrammering som huvudsakligen bedrivs idag. Variabler tillhör detimperativa paradigmet i vilket programmeraren i hög grad beskriverhur beräkningar skall utföras av datorn. Detta står i kontrast till detdeklarativa paradigmet – i vilket funktionell programmering normaltplaceras – där man har en högre abstraktionsgrad, saknar variabler ochendast beskriver att något skall göras – inte hur. I funktionellprogrammering kan inte något tillstånd i samma bemärkelse som iimperativ – procedurell eller objektorienterad – programmering finnas.Upprepningar måste göras med rekursion och program ärdeterminerade. Både fördelar och nackdelar finns med detta, det blirlättare att resonera kring ett program men samtidigt kan sidoeffekter,som att skriva något till en fil, inte förekomma i rent funktionellaprogram. Eftersom detta är en vanligt förekommande uppgift idatorprogram idag måste det hanteras på något sätt. Att kombinerafunktionella och objektorienterade språk innebär visserligen enkompromiss där man förlorar en del av de fördelar som finns med rentfunktionella program men är samtidigt en naturlig utveckling från detobjektorienterade arbetssätt vilket för närvarande är så dominerande.Följande uppsats ämnar att förklara den funktionella programmeringen,redogöra för de aspekter som gör den intressant och beskriva dess platsi framtidens program- och systemutveckling.Tecken finns på att det objektorienterade paradigmet börjar tappa sinstatus som den oomstridda lösningen inom systemutveckling. Nya idéerkommer in och ställer grundläggande programmeringsprinciper påända. Vad kan ett deklarativt förhållningsätt tillföra och vad innebär detatt programmera funktionellt? Variabler är en viktig komponent i denprogrammering som huvudsakligen bedrivs idag. Variabler tillhör detimperativa paradigmet i vilket programmeraren i hög grad beskriverhur beräkningar skall utföras av datorn. Detta står i kontrast till detdeklarativa paradigmet – i vilket funktionell programmering normaltplaceras – där man har en högre abstraktionsgrad, saknar variabler ochendast beskriver att något skall göras – inte hur. I funktionellprogrammering kan inte något tillstånd i samma bemärkelse som iimperativ – procedurell eller objektorienterad – programmering finnas.Upprepningar måste göras med rekursion och program ärdeterminerade. Både fördelar och nackdelar finns med detta, det blirlättare att resonera kring ett program men samtidigt kan sidoeffekter,som att skriva något till en fil, inte förekomma i rent funktionellaprogram. Eftersom detta är en vanligt förekommande uppgift idatorprogram idag måste det hanteras på något sätt. Att kombinerafunktionella och objektorienterade språk innebär visserligen enkompromiss där man förlorar en del av de fördelar som finns med rentfunktionella program men är samtidigt en naturlig utveckling från detobjektorienterade arbetssätt vilket för närvarande är så dominerande.Följande uppsats ämnar att förklara den funktionella programmeringen,redogöra för de aspekter som gör den intressant och beskriva dess platsi framtidens program- och systemutveckling. / There are signs that the object-oriented paradigm is beginning to lose itsstatus as the undisputed answer in system development. New ideas arearriving and they are flipping fundamental programming principlesupside down. What can a declarative approach bring and what does itmean to program in a functional fashion? Variables are an importantcomponent in the type of programming that is generally conductedtoday. Variables belong to the imperative paradigm in which theprogrammer to a large extent describe how calculations are to bepreformed by the computer. This is in contrast to the declarativeparadigm – in which functional programming is usually placed – wherethe level of abstraction is higher, variables are missing and where youonly describe that something is to be performed – not how. In functionalprogramming there cannot be any state in the same sense as inimperative – procedural or object-oriented – programming. Repetitionhas to be performed with recursion and programs are deterministic.There are both benefits and disadvantages with this, reasoning about aprogram is easier but at the same time there cannot be any use of sideeffects,like writing something to a file, in a purely functional language.Since that is a common task in computer programs today the dilemmahas to be dealt with in some way. Combining functional and objectorientedlanguages does mean making a compromise where some of thebenefits of purely functional programs are lost but it is also a naturalevolution from the object-oriented methods that are currentlydominating. The following thesis will show what functionalprogramming is, explain which aspects make it interesting and describeits place in the program and system development of the future.There are signs that the object-oriented paradigm is beginning to lose itsstatus as the undisputed answer in system development. New ideas arearriving and they are flipping fundamental programming principlesupside down. What can a declarative approach bring and what does itmean to program in a functional fashion? Variables are an importantcomponent in the type of programming that is generally conductedtoday. Variables belong to the imperative paradigm in which theprogrammer to a large extent describe how calculations are to bepreformed by the computer. This is in contrast to the declarativeparadigm – in which functional programming is usually placed – wherethe level of abstraction is higher, variables are missing and where youonly describe that something is to be performed – not how. In functionalprogramming there cannot be any state in the same sense as inimperative – procedural or object-oriented – programming. Repetitionhas to be performed with recursion and programs are deterministic.There are both benefits and disadvantages with this, reasoning about aprogram is easier but at the same time there cannot be any use of sideeffects,like writing something to a file, in a purely functional language.Since that is a common task in computer programs today the dilemmahas to be dealt with in some way. Combining functional and objectorientedlanguages does mean making a compromise where some of thebenefits of purely functional programs are lost but it is also a naturalevolution from the object-oriented methods that are currentlydominating. The following thesis will show what functionalprogramming is, explain which aspects make it interesting and describeits place in the program and system development of the future.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:uu-126472
Date January 2010
CreatorsWingren, Staffan
PublisherUppsala universitet, Data- och systemvetenskap
Source SetsDiVA Archive at Upsalla University
LanguageSwedish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0016 seconds