hdolder.com srl  

Software R&D

   hdc Home    |    Content    |    Blog    |    Director    |    Contact    |    mail us   


M&P History and Influences

Posted on October 23, 2014 by Herman Dolder

Brief history

The development of M&P [Modular & Parallel] began in middle 1970. At that time I was using the GPSS (General Purpose Simulation System) software in an IBM/360 computer to simulate and optimize a complex strategic industrial process.

GPSS was the perfect tool for the job and some of its powerful characteristics impressed me very much and, at a certain moment, I imagined an analogous architecture for the design and processing of all kind of LOB applications.

The characteristics of GPSS that impressed me most were:

  • Model-Driven system.

  • Parallelism (simulated by GPSS).

  • Blocks based modeling (LEGO-like).

  • Event-Driven Dataflow (GPSS "Transactions" flowing thru Blocks).

  • "wiring" (conexionist approach).

  • Queues and Schedulers.

Aside of this, the GPSS engine was very efficient and lightweight: the IBM/360 computer had only 32 KB (yes, 32,000 Bytes) of RAM, no-virtual memory, and were running on the single task, batch processing, DOS/360 Operating System).

Happy end

On October 2014, Version 9 of M&P is complete and GPSS is alive and is the most popular software in its class.

Influential Ideas

During the 44 years of M&P R&D a large number of other developments influenced the M&P evolving architecture.

The following table contains the main sources of ideas listed in alphabetical order

The chart in our home page shows the main concepts and functions implemented in M&P.


Source Info

Concept / Idea / Pattern

Actors Actors Model
Carl Hewitt - 1973
  • multiple interacting intelligent agents

  • messages

  • concurrent distributed processing

  • asynchronous parallel processing

  • interacting environment

Microsoft - 2002
  • in-memory database (disconnected DataSets)
  • dataproviders
  • rdbms neutrality
  • databinding
  • code--first methodology
BML Bean Markup Language (BML)
IBM - 1998
  • XML based declarative composition, configuration and creation of components.
  • hierarchical containment organization of components
  • composite components
  • event adapter
  • inter-component binding of events
  • electronic integrated circuits analogy
  • entire applications can be created declaratively
COM Component Object Model
Microsoft - 1993
  • interface based programming
  • interface-first concept
  • delegation
  • proxies for remoting
  • inter-application asynchronous messaging
  • out-of-process servers
  • Globally Unique Identifiers (GUIDs)
World Wide Web Consortium (W3C).- 2012
  • WebWorkers (out-of-process servers)
  • WebSockets
Java Framework Java Framework
James Gosling - Sun Microsystems - 1995
  • portability ("Write Once, Run Anywhere")
  • bytecode interpreted in a virtual machine
Javascript ECMAScript
Brendan Eich - Netscape - 1995
  • Concurrency without treads
  • anonymous functions (lambdas)
  • closures
Java Studio Java Studio
Java Studio Blue Book - 1999
  • similar to BML
  • built-in component library
  • graphical composition of ap plications
LISP Lisp programming language
John McCarthy - 1958
  • simplicity of the language of its parser
    and its interpreter
  • easily expandable and portable
  • fully parenthesized Polish prefix notation.
  • lambda-expressions
  • interactivity
  • The interchangeability of code and data
    programs as data
  • dynamic program creation
  • easy of serialization and deserialization
  • lists are its major data structures
MyXaml MyXaml
Marc Clifton - 2004
  • Declarative programming
  • xaml everywhere
.NET Framework .NET Framework
Microsoft - 2000
  • Common Language Runtime (CLR)
  • delegates
NodeJS NodeJS
Ryan Dahl - Joyent - 2009

  • server-side javascript runtime
  • cross-platform portability
  • concurrency without threads
  • single-threaded event-based loop
  • event-driven architecture with non-blocking APIs
  • asynchonic operation
  • nexttick
  • npm package manager
  • compiles JavaScript source code just-in-time
PROLOG Prolog Logic programming language
Alain Colmerauer, 1972
  • polymorphic data types
  • logic databases
  • relations, query over relations
  • declarative programming
  • portability
  • bidirectional bindings
  • backtracking
  • DCG - Definite clause grammars
  • recursive vs stack-based implementations
Relational Model Relational Model
Edgar F. Codd - 1969
  • tuples grouped into relations
  • declarative specification of data and queries
  • database normalization
  • formal mathematical support
    relational calculus or relational algebra
  • four-valued logic (True, False, Missing but Applicable, Missing but Inapplicable)
VRML Virtual Reality Modeling Language
VRML Consortium 1994-1997
  • model-driven
  • hierarchical structure
  • animations
  • interactive vector graphics
  • 3D visualization
  • custom scripts
WAM Warren Abstract Machine
David H. D. Warren - 1983
  • ( stack of) environment frames (memory frames, memory layers)
XAML Extensible Application Markup Language
Microsoft - 2004
  • declarative XML-based composition language
  • data binding, eventing
  • visual designers

See also



TBW The BLOCKS World 2015  hdolder.com srl