I’ve written an article on Distributed Semantic Computing:
Read the full article on Code Project: http://www.codeproject.com/Articles/1012650/Distributed-Semantic-Computing
In this article, I will demonstrate distributed semantic computing using a Type-First Development (TFD) approach, a term first coined by Tomas Petricek in his blog entry “Why type-first development matters.”
In this article, I’ve re-written the HOPE engine to utilize “type declarative programming.” This is a style of programming that relies heavily on generics to declaratively describe what should be done, not how. It is the other side of the TFD coin — in addition to developing types first, we also implement processes that operate on generic types, particularly those that implement specific interfaces. Similar to how events, delegates, callbacks, and so forth are used for an inversion of control with regards to program behavior, “type declarative programming” is an inversion of control for instantiating objects. Unlike HOPE, where types are declared in XML and compiled at runtime, here we use types implemented in the code itself. Because of .NET’s rich reflection and assembly loading capabilities, the difference is irrelevant to the overall goals of HOPE, but the difference to the developer is significant, especially with regards to the safety that a typed language gives you at runtime and the ease of programming (Intellisense and compile-time checking) in a typed language during development.
Type First Development (coined by Tomas Petricek) is applicable to imperative languages as well as functional languages. We can use the C#’s type system to create rich types and declaratively establish the relationship between types and the methods that process those types. We can also create containers (membranes) to create computational islands and control the flow of type instances between computational islands. By using a semantic processor, the membranes, types and receptors that are declared in a “semantic system” becomes a expressive computational unit. Specialized receptors, such as the distributed receptors illustrated in this article, demonstrate how easy it is to create a distributed semantic computing system.