1,766 research outputs found
Using Erlang in Research and Education in a Technical University
This paper addresses the problem of using functional programming (FP) languages for research and education purposes. In order to identify problems associated with usage of FP languages, such as Erlang, an experiment consisting of two surveys was performed. The rst survey was anonymous, and aimed at establishing whether the participants prefer object-oriented or functional coding. The second one was a survey after students have nished an Erlang course. The results of these two surveys demonstrate that functional programming is underrated without apparent reasons. Possible steps to address this problem are suggested
Modelling and Simulation of Asynchronous Real-Time Systems using Timed Rebeca
In this paper we propose an extension of the Rebeca language that can be used
to model distributed and asynchronous systems with timing constraints. We
provide the formal semantics of the language using Structural Operational
Semantics, and show its expressiveness by means of examples. We developed a
tool for automated translation from timed Rebeca to the Erlang language, which
provides a first implementation of timed Rebeca. We can use the tool to set the
parameters of timed Rebeca models, which represent the environment and
component variables, and use McErlang to run multiple simulations for different
settings. Timed Rebeca restricts the modeller to a pure asynchronous
actor-based paradigm, where the structure of the model represents the service
oriented architecture, while the computational model matches the network
infrastructure. Simulation is shown to be an effective analysis support,
specially where model checking faces almost immediate state explosion in an
asynchronous setting.Comment: In Proceedings FOCLASA 2011, arXiv:1107.584
Scalable Persistent Storage for Erlang
The many core revolution makes scalability a key property. The RELEASE project aims to improve the scalability of Erlang on emergent commodity architectures with 100,000 cores. Such architectures require scalable and available persistent storage on up to 100 hosts. We enumerate the requirements for scalable and available persistent storage, and evaluate four popular Erlang DBMSs against these requirements. This analysis shows that Mnesia and CouchDB are not suitable persistent storage at our target scale, but Dynamo-like NoSQL DataBase Management Systems (DBMSs) such as Cassandra and Riak potentially are. We investigate the current scalability limits of the Riak 1.1.1 NoSQL DBMS in practice on a 100-node cluster. We establish for the first time scientifically the scalability limit of Riak as 60 nodes on the Kalkyl cluster, thereby confirming developer folklore. We show that resources like memory, disk, and network do not limit the scalability of Riak. By instrumenting Erlang/OTP and Riak libraries we identify a specific Riak functionality that limits scalability. We outline how later releases of Riak are refactored to eliminate the scalability bottlenecks. We conclude that Dynamo-style NoSQL DBMSs provide scalable and available persistent storage for Erlang in general, and for our RELEASE target architecture in particular
How functional programming mattered
In 1989 when functional programming was still considered a niche topic, Hughes wrote a visionary paper arguing convincingly ‘why functional programming matters’. More than two decades have passed. Has functional programming really mattered? Our answer is a resounding ‘Yes!’. Functional programming is now at the forefront of a new generation of programming technologies, and enjoying increasing popularity and influence. In this paper, we review the impact of functional programming, focusing on how it has changed the way we may construct programs, the way we may verify programs, and fundamentally the way we may think about programs
Design of engineering systems in Polish mines in the third quarter of the 20th century
Participation of mathematicians in the implementation of economic projects in
Poland, in which mathematics-based methods played an important role, happened
sporadically in the past. Usually methods known from publications and verified
were adapted to solving related problems. The subject of this paper is the
cooperation between mathematicians and engineers in Wroc{\l}aw in the second
half of the twentieth century established in the form of an analysis of the
effectiveness of engineering systems used in mining. The results of this
cooperation showed that at the design stage of technical systems it is
necessary to take into account factors that could not have been rationally
controlled before. The need to explain various aspects of future exploitation
was a strong motivation for the development of mathematical modeling methods.
These methods also opened research topics in the theory of stochastic processes
and graph theory. The social aspects of this cooperation are also interesting.Comment: 45 pages, 11 figures, 116 reference
Sojourn time in a single server queue with threshold service rate control
We study the sojourn time in a queueing system with a single exponential
server, serving a Poisson stream of customers in order of arrival. Service is
provided at low or high rate, which can be adapted at exponential inspection
times. When the number of customers in the system is above a given threshold,
the service rate is upgraded to the high rate, and otherwise, it is downgraded
to the low rate. The state dependent changes in the service rate make the
analysis of the sojourn time a challenging problem, since the sojourn time now
also depends on future arrivals. We determine the Laplace transform of the
stationary sojourn time and describe a procedure to compute all moments as
well. First we analyze the special case of continuous inspection, where the
service rate immediately changes once the threshold is crossed. Then we extend
the analysis to random inspection times. This extension requires the
development of a new methodological tool, that is "matrix generating
functions". The power of this tool is that it can also be used to analyze
generalizations to phase-type services and inspection times.Comment: 16 pages, 13 figure
Software Engineering and Management: a curriculum description
[Abstract] The curriculum of the Software Engineering and Management education at the IT University of Gothenburg is described. The education is build upon porblem based learning and uses a project orientation, in each term students spend as much time in projects as they spend in courses where the theory is taught. This educational model orginiates from the university of Aalborg in Denmark. It is used in the described curiculum to enable the students to aquire managerial and programming skills to complement their technical knowledge
Kompics: a message-passing component model for building distributed systems
The Kompics component model and programming framework was designedto simplify the development of increasingly complex distributed systems. Systems built with Kompics leverage multi-core machines out of the box and they can be dynamically reconfigured to support hot software upgrades. A simulation framework enables deterministic debugging and reproducible performance evaluation of unmodified Kompics distributed systems.
We describe the component model and show how to program and compose event-based distributed systems. We present the architectural patterns and abstractions that Kompics facilitates and we highlight a case study of a complex
distributed middleware that we have built with Kompics. We show how our approach enables systematic development and evaluation of large-scale and dynamic distributed systems
- …