A PARallel LANguage for Symbolic Expression for 80x86 Symmetric Multiprocessors under Windows

PARLANSE is an inherently parallel programming language designed to support computationally expensive symbolic applications requiring medium grain irregular parallelism (~100 to ~1,000 machine instructions) while providing robustness through efficient error handling.

Application areas:

  • Symbolic computation e.g., formula manipulation or symbolic simulation
  • Program Analysis and Transformation systems (e.g. DMS)
  • Expert systems e.g., parallel symbolic inference
  • Optimizing compilers e.g., symbolic analysis
  • Runtime systems requiring high performance e.g., low overhead error recovery
  • Data mining e.g., massive irregular data in parallel query evaluation

Language features:

  • Conventional language facilities:
    • Strongly typed data, arithmetic, variables, intrinsic UNICODE character set
    • Safe pointers, dynamic allocation from memory pools, bulk release of memory pool
    • Assignments, conditionals, loops, functions, procedures, parameters
    • Lambda constants, lexical closures

  • Software engineering support:
    • Parameterized exceptions, "try" and exception recovery clauses
    • Type declarations with range constraints and data assertions
    • Structures, modules and namespace management
    • Compile time, run-time, and debug time assertions
    • Explicit declaration compile-time checking of side effects

  • Parallelism:
    • Extremely fast grain scheduling (tens of machine instructions)
      On 2 cores, PARLANSE applications outperform equivalent (Windows native) threaded C programs by factor of 2)
    • implicit functional parallelism>
    • Explicit parallel, concurrent, and static partial-orders
    • teams of dynamically generated grains
    • "fair" scheduler allows development on uniprocessor systems
    • Intrinsic synchronizing primitives: semaphores, futures, grain abort
    • Efficient exception management tightly integrated with parallelism (zero overhead for normal path execution)

Target Execution Environments:

Currently 1-32 processors SMP Windows 2003-Windows 10; parallel-tested with Wine under Linux.

  • Shared address space for grains
  • Uniprocessor to 10s of symmetric multiprocessors (A.D. 2016 workstation)
  • Access to underlying native O/S calls via foreign function interface

Additional Information:

PARLANSE is in everyday use for the construction of DMS. SD is presently looking for other adopters.

PARLANSE R&D was funded by the National Institute of Standards and Technology, Advanced Technology Program

For more information: [email protected]    Follow us at Twitter: @SemanticDesigns


A PARallel LANguage for Symbolic Expression