Spelling suggestions: "subject:"[een] IMMUTABILITY"" "subject:"[enn] IMMUTABILITY""
1 |
Immutability: An Empirical Study in Scala / Oföränderlighet: en empirisk studie i ScalaAxelsson, Ludvig January 2017 (has links)
Utilizing immutability is considered to have many desired benefits when it comes to software development and reasoning about programs. It is also one of the core principles of functional programming, and many programming languages have support for specifying immutability. Developers can by specifying immutability write code that, for example, prevent program state from being unintentionally mutated. The Scala programming language is a functional and object-oriented language where developers can specify immutability with reassignable and non-reassignable variables. The type system in Scala has no built-in support for developers to express the fact that a type is immutable, immutability is instead by convention and considered best practice. However, knowledge about the immutability usage and how prevalent it is in real-world Scala code are until this point non-existent. This project presents an immutability analysis and evaluation of six small-to-large open source projects written in Scala providing empirical data on immutability usage. The analysis investigates the immutability property of templates, where a template refers to one of Scala's different class types, on three distinct properties: shallow, conditionally deep and deep immutability, where deep is the strongest immutability property. The analysis works as a plug-in for the Scala compiler that statically analyzes the source code of projects. We report immutability statistics for each evaluated project, including three widely used projects, Scala's standard library, Akka's actor framework and ScalaTest. Explanations to why stronger immutability properties do not hold are also provided. The analysis show that the majority of templates for each project satisfied an immutability property and were not classified as mutable. Because each analyzed project had templates that were assumed to be mutable, as they were unreachable by our analysis, there could potentially be more templates that satisfy an immutability property. Inheritance is shown to be an important factor when it comes to a template's immutability and mutability was found to be lower for the template types case class and singleton object. This can be seen as intended by the designers of Scala, indicating that these type of class abstractions help programmers utilize immutability. Our results show that immutability is frequently used in Scala and the high degree of immutability usage could be due to the functional nature of the language. / Att använda immuterbar (oföränderlig) data anses ha många önskvärda fördelar när det kommer till utveckling av program och att kunna resonera om dess funktionalitet. Immuterbar data är också en viktig princip inom funktionell programmering och många språk har idag stöd för att ange immuterbarhet. Utvecklare kan i kod ange ifall data ska vara immuterbar för att till exempel förhindra ett programtillstånd från att oavsiktligt förändras. Programmeringsspråket Scala är ett funktionellt och objektorienterat språk där utvecklare kan ange immuterbarhet med två typer av variabler, en som är tilldelningsbar och en som är icke-tilldelningsbar. Typsystemet i Scala har inget inbyggt stöd för utvecklare att uttrycka det faktum att en typ är immuterbar, att använda immuterbarhet är i stället konvention och anses vara den bästa metoden. Men uppgifter om hur immuterbarhet egentligen används i riktiga Scala projekt har fram tills nu inte varit tillgängligt. Detta projekt presenterar en immuterbarhetsanalys och en utvärdering av sex små till stora projekt med öppen källkod skrivna i programmeringsspråket Scala. Analysen undersöker immuterbarhetsegenskaper hos Scalas olika typer av klasser med avseende på tre olika egenskaper: ytlig, villkorligt djup och djup immuterbar, där djup är den starkaste immuterbarhetsegenskapen. Analysen fungerar som ett tillägg för Scalas kompilator och utfärdar en statisk analys av källkoden för ett projekt. Statistik om immuterbarhet för varje projekt redovisas och utvärderas, bland annat tre välkända och populära kodbaser, Scalas standard bibliotek, Akka’s actor ramverk och ScalaTest. Förklaringar till varför klasser inte uppfyller en immuterbarhetsegenskap visas också. Analysen visar att majoriteten av alla klasser i projekten har en immuterbarhetsegenskap och var inte klassificerade som muterbara. Eftersom varje projekt hade klasser som antogs vara muterbara för att dessa inte var nåbara för våran analys så kan det potentiellt finnas fler klasser som har en immuterbarhetsegenskap. Vad en klass ärver visar sig vara en viktig faktor när det kommer till vilken typ av immuterbarhetsegenskap den har. Muterbarhet visade sig vara lägre för klasser som är av typen case class and singleton object vilket kan anses vara avsett av Scalas skapare, då dessa klass abstraktioner hjälper programmerare att använda immuterbarhet. Resultaten visar att immuterbarhet används flitigt i Scala och den höga användningsgraden kan vara på grund av att det är ett funktionellt språk.
|
2 |
Changing Changelessness: On the Genesis and Development of the Doctrine of Divine Immutability in the Ancient and Hellenic PeriodWilcox, Milton 14 November 2017 (has links)
This project will track and explain the development of the Doctrine of Divine Immutability from early mythological and scriptural source material that seems to indicate that divine entities are changeable into metaphysical systems that demand a perfectly consistent deity. The Doctrine of Divine Immutability is a philosophical and theological postulate that has long been a staple of systematic metaphysics and theology, but its function in robust and fully formed systems is different than its function when it is first generated in Ancient Greece and Judah. Methodologically mostly primary sources are studied and compared with interpretive help from relevant secondary sources. Once the generation and evolution of this doctrine is understood, a more holistic understanding of the relationship between religion and philosophy will be evident. Additionally a more robust understanding of Middle Platonism and 1st and 2nd century Christianity and their relationship to Roman Stoicism will be achieved. Of particular importance to contemporary scholarship this work will allow us to understand the doctrine in its context and will shield us from anachronistic readings of the arguments that are bound to cause fundamental errors in scholarship.
|
3 |
Language Constructs for Safe Parallel Programming on Multi-CoresÖstlund, Johan January 2016 (has links)
The last decade has seen the transition from single-core processors to multi-cores and many-cores. This move has by and large shifted the responsibility from chip manufacturers to programmers to keep up with ever-increasing expectations on performance. In the single-core era, improvements in hardware capacity could immediately be leveraged by an application: faster machine - faster program. In the age of the multi-cores, this is no longer the case. Programs must be written in specific ways to utilize available parallel hardware resources. Programming language support for concurrent and parallel programming is poor in most popular object-oriented programming languages. Shared memory, threads and locks is the most common concurrency model provided. Threads and locks are hard to understand, error-prone and inflexible; they break encapsulation - the very foundation of the object-oriented approach. This makes it hard to break large complex problems into smaller pieces which can be solved independently and composed to make a whole. Ubiquitous parallelism and object-orientation, seemingly, do not match. Actors, or active objects, have been proposed as a concurrency model better fit for object-oriented programming than threads and locks. Asynchronous message passing between actors each with a logical thread of control preserves encapsulation as objects themselves decide when messages are executed. Unfortunately most implementations of active objects do not prevent sharing of mutable objects across actors. Sharing, whether on purpose or by accident, exposes objects to multiple threads of control, destroying object encapsulation. In this thesis we show techniques for compiler-enforced isolation of active objects, while allowing sharing and zero-copy communication of mutable data in the cases where it is safe to do so. We also show how the same techniques that enforce isolation can be utilized internal to an active object to allow data race-free parallel message processing and data race-free structured parallel computations. This overcomes the coarse-grained nature of active object parallelism without compromising safety. / UPMARC
|
4 |
Functional and Imperative Object-Oriented Programming in Theory and Practice : A Study of Online Discussions in the Programming CommunityJernlund, Per, Stenberg, Martin January 2019 (has links)
Functional programming (FP) has progressively become more prevalent and techniques from the FP paradigm has been implemented in many different Imperative object-oriented programming (OOP) languages. However, there is no indication that OOP is going out of style. Nevertheless the increased popularity in FP has sparked new discussions across the Internet between the FP and OOP communities regarding a multitude of related aspects. These discussions could provide insights into the questions and challenges faced by programmers today. This thesis investigates these online discussions in a small and contemporary scale in order to identify the most discussed aspect of FP and OOP. Once identified the statements and claims made by various discussion participants were selected and compared to literature relating to the aspects and the theory behind the paradigms in order to determine whether there was any discrepancies between practitioners and theory. It was done in order to investigate whether the practitioners had different ideas in the form of best practices that could influence theories. The most discussed aspect within FP and OOP was immutability and state relating primarily to the aspects of concurrency and performance . This thesis presents a selection of representative quotes that illustrate the different points of view held by groups in the community and then addresses those claims by investigating what is said in literature. It was shown that there were no direct discrepancies between the practitioners and the theory.
|
5 |
Development of an API for creating and editing openEHR archetypesKlasson, Filip, Väyrynen, Patrik January 2009 (has links)
<p>Archetypes are used to standardize a way of creating, presenting and distributing health care data. In this master thesis project the open specifications of openEHR was followed. The objective of this master thesis project has been to develop a Java based API for creating and editing openEHR archetypes. The API is a programming toolbox that can be used when developing archetype editors. Another purpose has been to implement validation functionality for archetypes. An important aspect is that the functionality of the API is well documented, this is important to ease the understanding of the system for future developers. The result was a Java based API that is a platform for future archetype editors. The API-kernel has optional immutability so developed archetypes can be locked for modification by making them immutable. The API is compatible with the openEHR specifications 1.0.1, it can load and save archetypes in ADL (Archetype Definition Language) format. There is also a validation feature that verifies that the archetype follows the right structure with respect to predefined reference models. This master thesis report also presents a basic GUI proposal.</p>
|
6 |
Blockchain on Data Security : An interpretive approach on Cyber Security Professionals’ perceptionsGkougkaras, Vasileios January 2021 (has links)
This Master’s Thesis main purpose is to identify the perceptions of Cyber Security Professionals on Blockchain Technology and whether it could potentially become a substitutefor the current data security systems or not. A literature review was initially performed in order to explore previous related research on the field of Cyber Security, its infrastructure andthe main aspects of Blockchain Technology.Qualitative research was conducted in regards to the participants’ perceptions. Morespecifically, individual interviews were held with each one of the participants all of whom are professionals in the field of Cyber Security. Five different themes emerged from theinterviews which were performed by asking open-ended questions and holding a dialogue with the participants. Those themes start with (1) their opinions on current data security infrastructure and methods. Following that theme a half hour presentation on basic blockchain operations and applications were held in order to identify their (2) current understanding onblockchain. (3) Discussions were held in regards to blockchain’s scalability and sustainability,followed by (4) the security of Blockchains. In the end the (5) fifth and final theme covered the main purpose of this master’s thesis which is whether blockchain can be implemented asan alternate technology on data privacy and security.This Master’s Thesis contributes to the current knowledge on Blockchain within the field ofinformatics by providing the perceptions of Cyber Security Professionals in regards to its operation and implementation. Furthermore it aims to identify whether any possible applications of blockchain technology could be suggested for future implementation in thedomain of data security.The discussion summarizes the empirical findings acquired from the interviews and theperceptions of the participants on Blockchain Technology. By exploring the themes thatemerged from the interviews, it is clearly evident that blockchain is still not a technology thatcan be trusted as an alternative to the current security infrastructures and methods according to the participants. Despite that fact a lot of advantages and optimistic elements were derived since blockchain’s immutability and security demonstrates a high level of tamperingresistance, thus making it suitable as a technology within the Information security industry. Incase blockchain manages to overcome its shortcomings it could prove to be a necessary tool in data privacy and security.
|
7 |
[pt] REVISITANDO MONITORES / [en] REVISITING MONITORSRENAN ALMEIDA DE MIRANDA SANTOS 13 August 2020 (has links)
[pt] A maioria das linguagens de programação modernas fornece ferramentas para programação concorrente sem restringir seu uso. Assim, fica a cargo do programador evitar a ocorrência de condições de corrida. Nessa dissertação, revisitamos o modelo de monitores, projetados para prevenir condições de corrida ao limitar o acesso à variáveis compartilhadas, e mostramos que monitores podem ser implementados em linguagens de programação com semântica referencial, dadas as regras de tipagem apropriadas. Nós descrevemos a linguagem de programação Aria, projetada com monitores nativos seguindo a proposta original do modelo. Através da resolução de problemas clássicos de concorrência, nós avaliamos o uso de monitores em Aria
para sincronização em diferentes níveis de granularidade, e extendemos a linguagem com novos recursos a fim de contemplar as limitações do modelo envolvendo desempenho e expressividade. / [en] Most current programming languages do not restrict the use of the concurrency primitives they provide, leaving it to the programmer to detect data races. In this dissertation, we revisit the monitor model, which
guards against data races by guaranteeing that accesses to shared variables occur only inside monitors, and show that this concept can be implemented in a programming language with referential semantics, given appropriate typing rules. We describe the Aria programming language, designed with native monitors according to these rules. Through the discussion of classic concurrency problems, we evaluate the use of Aria monitors for synchronization at different levels of granularity and extend the language with new features to address the limitations of monitors regarding performance and expressiveness.
|
8 |
Adaptation et immutabilité en droit musulman : illustrées par l'expérience marocainePoupart, André January 2008 (has links)
Mémoire numérisé par la Division de la gestion de documents et des archives de l'Université de Montréal.
|
9 |
Adaptation et immutabilité en droit musulman : illustrées par l'expérience marocainePoupart, André January 2008 (has links)
Mémoire numérisé par la Division de la gestion de documents et des archives de l'Université de Montréal
|
10 |
La peau humaine en droit privé / Human skin in private lawDailler, Tatiana 04 December 2015 (has links)
La peau humaine est un élément singulier qui recouvre le corps et permet à chacun de bénéficier du sens du toucher. Qualifiée de tissu du corps humain, la peau est aujourd’hui soumise au même régime juridique que celui qui s’applique à l’égard du corps humain. Pourtant, si la peau est indéniablement une enveloppe qui entoure le corps et le protège, elle est également proche de la personne puisqu’elle en constitue l’apparence, renferme des éléments de son identité et contribue à son identification. Par conséquent, la peau recouvre la surface du corps et désigne aussi la personne, ce qui en fait un élément frontalier du corps et de la personne. Ainsi rattachée aux deux entités dominantes que sont la personne et le corps, la peau doit être envisagée dans une relation ternaire qui la placerait au centre des liens entretenus entre la personne et son corps. D’une part, la peau n’est pas seulement un élément du corps humain puisque la personne bénéficie d’un droit d’effectuer des choix concernant sa peau, voire de la modifier. D’autre part, la peau n’est pas seulement un élément rattaché à la personne puisqu’elle renferme le corps et en constitue une protection. Par conséquent, si ce lien entre la peau et la personne doit être mis en exergue, il doit également se conjuguer avec le lien qui existe entre la peau et le corps, afin d’assurer, non seulement une cohérence entre les différents principes juridiques qui s’appliquent alternativement à la peau en fonction de son entité de rattachement mais également, de garantir une protection effective de la peau quelle que soit cette entité de rattachement. / Human skin is a singular element that covers the body and allows everyone to benefit from the sense of touch. Described as a tissue of the human body, now the skin is subject to the same legal system enforced to the human body. However, if the skin is a protecting body shell, it is also akin to the person herself because it compose her appearence, contains elements of her identity and conduce to her identification. Therefore, if the skin covers the entire body, it also constitute the person. This makes of the skin a border element of the body and the person. Connected with this two dominant entities (person and body), the skin must be construed in a ternary relationship wich would place it in the center of the links between the person and her body. Indeed, the skin is not only an element of the human body because the person benefits from a right to make choices concerning it, even to modify it. But the skin cannot either only be an element of the person because it contains the body and constitutes a protection. However, if this link between the skin and the person must be hightlighted, it also has to merge with the link between the skin and the body to assure, on one hand, a coherence between the various legal principles alternately applied to the skin, according to its entity of pertaining, and, on the other hand, to guarantee an effective protection of the skin whatever is this entity of pertaining.
|
Page generated in 0.026 seconds