What is Mesham

From Mesham
Jump to navigationJump to search


As technical challenges increase, the notion of using many computers to solve tasks is a very attractive one and has been the focus of much research. However, as the hardware has matured, a weakness in this field has been exposed - It is actually very difficult to write parallel programs with any complexity, and if the programmer is not careful they can end up with an abomination to maintain. Up until this point, simplicity to program and efficiency have been tradeoffs, with the most common parallel codes being written in low level languages.


Mesham is a programming language designed to simplify High Performance Computing (HPC) yet result in highly efficient executables. This is achieved mainly via the type system, the language allowing for programmers to provide extra typing information not only allows the compiler to perform far more optimisation than traditionally, but it also enables conceptually simple programs to be written. Code written in Mesham is relatively simple, efficient, portable and safe.

Type Oriented Programming

In type oriented programming the majority of the complexity of the language is taken away and put into the type system. Whilst abstractions such as functional programming and object orientation have become popular and widespread, use of the type system in this way is completely novel. Placing the complexity of the language into the type system allows for a simple language yet yields high performance due to the rich amount of information readily available to the compiler.

Why Mesham?

Mesham will be of interest to many different people:

  • Scientists - With Mesham you can write simple yet highly efficient parallel HPC code which can easily run on a cluster of machines
  • HPC Programmers - Mesham can be used in conjunction with Grid computing, with the program being run over a hetrogenus resource
  • Normal Computer Users - Programs written in Mesham run seamlessly on SMPs, as a programmer you can take advantage of these multiple processors for common tasks