Spelling suggestions: "subject:"bajo"" "subject:"tajo""
1 |
The Majo programming language : Creation and analysis of a programming language for parallelizationNilsson, Joel January 2018 (has links)
It is well known that parallelization of software is a difficult problem to solve. This project aimed to research a possible solution by creating a programming language for parallelization and subsequently analyzing its syntax and semantics. This analysis consisted of readability and writability tests followed by a subjective discussion from the point of view of the author. The project resulted in the Majo programming language. Majo uses a graph based concurrency model with implicit shared data synchronization. The model is integrated into the languages design, making it easier to use. The analysis of the language showed that the integration of the threading model simplifies the writing of parallel software. However, there are several syntactic elements that could be improved upon, especially regarding the communication between concurrently executing threads. In conclusion, the author believes that the way forward in regards to parallel programming is to make programming languages more human centric and design syntax in a way that intuitively expresses the underlying semantics.
|
2 |
Concurrency model for the Majo language : An analysis of graph based concurrencyFält, Markus January 2018 (has links)
Today most computers have powerful multi core processors that can perform many calculations simultaneously. However writing programs that take full advan- tage of the processors in modern day computers can be a challenge. This is due to the challenge of managing shared resources between parallel processing threads. This report documents the development of the Majo language that aims to solve these problems by using abstractions to make parallel programming easier. The model for the abstractions is dividing the program in to what is called nodes. One node represents one thread of execution and nodes are connected to each other by thread safe communication channels. All communication channels are frst in frst out queues. The nodes communicate by pushing and popping values form these queues. The performance of the language was measured and compared to other languages such as Python, Ruby and JavaScript. The tests were based on timing how long it took to generate the Mandelbrot set as well as sorting a list of inte- gers. The language scalability was also tested by seeing how much the execution time decreased by adding more parallel threads. The results from these tests showed that the developed prototype of the language had some unforeseen bugs that slowed down the execution more then expected in some tests. However the scalability test gave encouraging results. For future development the language exe- cution time should be improved by fxing relevant bugs and a more generalized model for concurrency should be developed.
|
Page generated in 0.0179 seconds