Difference between pages "Commgroup" and "Extendable Types"

From Mesham
(Difference between pages)
Jump to navigationJump to search
 
 
Line 1: Line 1:
== Syntax ==
+
A major idea for extension is to allow the programmer to create their own language types. In the current version of the language the programmer can only create new types at the compiler level, this is not a major issue at the moment due to generality of the type library however it does limit the language somewhat. Whilst it is relatively simple to create new types in this way, one can not expect the programmer to have to modify the compiler in order to support the codes they wish to write. There are a number of issues to consider however in relation to this aim.
  
commgroup[process list]
+
* How to implement this efficiently?
 
+
* How to maximise static analysis and optimisation?
== Semantics ==
+
* How to minimise memory footprint?
 
+
* The ideal way of structuring the programming interface?
Specified within the multiple type, will limit memory allocation (and variable communication) to the processes within the list given in this type's arguments. This type will ensure that the communications group processes exist.
 
 
 
== Example ==
 
 
 
var i:Int :: allocated[multiple[commgroup[1,3]]];
 
 
 
In this example there are a number processes, but only 1 and 3 have variable ''i'' allocated to them. This type would have also ensured that process two (and zero) exists for there to be a process three.
 
 
 
[[Category:Type Library]]
 
[[Category:Composite Types]]
 
[[Category:Allocation Types]]
 

Revision as of 13:49, 11 January 2010

A major idea for extension is to allow the programmer to create their own language types. In the current version of the language the programmer can only create new types at the compiler level, this is not a major issue at the moment due to generality of the type library however it does limit the language somewhat. Whilst it is relatively simple to create new types in this way, one can not expect the programmer to have to modify the compiler in order to support the codes they wish to write. There are a number of issues to consider however in relation to this aim.

  • How to implement this efficiently?
  • How to maximise static analysis and optimisation?
  • How to minimise memory footprint?
  • The ideal way of structuring the programming interface?