Home >> Computers >> Programming >> Languages >> Concurrent


  Ada
CHILL
Erlang
  Io
Java
Occam
  Oz
Tempo


Co-occurrent programing language come programming languages that use language constructs for concurrency. These constructs might require multi-threading, support for distributed computing, message passing, shared resources (including shared memory) or futures (known also when promises).

By having a few languages communication between coincidental area of an application is hidden from either a computer programmer (e.g., by applying stock), by having others it must exist as handled explicitly. Expressed communication may be divided into 2 classes:

  • divided-memory communication, in the which co-occurrent area communicate by changing shared memory locations. This style of coincident programming unremarkably takes a application of a select few form of locking (e.g., mutexes, semaphores, or monitors) to coordinate between threads.
  • Message-passing communication, where messages come sent to recipients when in the Actor model and Process calculi. Message-passing concurrency tends to become far supplementary comfortable to cause astir than shared-memory concurrency, & is often considered the more robust form of genus pan programming. Messages may be asynchronous (aka "send, pray, and if no acknowledgment send again"), when packets on the Internet, or can utilize a rendezvous style where a sender hinders until the message is received, when around TCP on the Internet and synchronous process calculi.

    In todays world a virtually all unremarkably utilized programming lanuages by owning specific constructs for concurrency come Java and C# with their multi-threading and lockup. These programing language produce apply of two message-passing & shared-memory communication.

    Languages where concurrency is important

    Ada Afnix – concurrent access to data is protected automatically (antecedently known as Aleph, however unrelated to Alef) Alef – concurrent language with threads & message pass, utilized for systems programming within early versions of Plan 9 (operating system) ChucK – domain specific programming language for audio Cilk – a concurrent C Cω – C Omega, a search language extending C#, utilizes asynchronous communication Concurrent Pascal – by Brinch-Hansen Corn E – uses promises, ensures deadlocks can't occur Erlang – uses asynchronous message passing with nothing shared Join Java – concurrent language based on a Java programming language Joule – dataflow language, communicates by message passing Limbo – relative of Alef, used for systems programming around Inferno (operating system) Oz – multiparadigm language, supports shared-state & message-passing concurrency, and futures Mozart Programming System – multiplatform Oz MultiLisp – Scheme variant extended to trend lines paralelism Occam – influenced heavily by Communicating Sequential Processes (CSP). Pict – essentially an executable implementation of Milner's Pi-Calculus SALSA – actor language with token-passing, join, & number one-class continuations for distributed computing on top a internet SR – research language

    Note that several one languages come designed supplementary when search languages (e.g., Pict) than when languages for production utilise. Notwithstanding, many of the examples (like Erlang, Limbo, & Occam) keep close at hand seen industrial use at various days in the survive Twenty years.

    Numerous more languages provide trend lines for concurency in a form of libraries (in level about corresponding by having the above listings).

  • Petri Nets World
    Petri Nets is a formal and graphical appealing language which is appropriate for modelling systems with concurrency.

    Esterel
    It is one of a family of synchronous languages which are particularly well-suited to programming reactive systems, including real-time systems and control automata

    A Distributed Implementation of the C-Linda Programming Language
    Language combining C and Linda, gives six functions for concurrent process coordination, can be added to any other sequential language, unlike many other parallel languages, programmers needn't learn a new language. Thesis with essay, bibliography, code samples.

    Linda
    Simple library implementation of Linda parallel programming system. To write parallel programs with linda, you need know only 6 functions: spawn, out, in, inp, rd, rdp. SourceForge project page: downloads, forum. CVS. [Open Source, GPL]

    FT Languages Page
    Fault-tolerant projects, goal: enhance language support for distributed programs with FT needs, most high-level languages lack good support for such, more so at system level; 3 projects described, FT-SR, FT-Linda, FTAG.

    LoI (Language of Interaction)
    Designed to support interaction-oriented programming. This paradigm is especially suitable for the design of reactive component-based systems like distributed and interactive systems.

    NesC: Language for Deeply Networked Systems
    C extension based on structuring concepts and execution model of TinyOS, an event-driven OS for sensor network nodes with very limited resources: 8K bytes program memory, 512 bytes RAM.

    MC# (MCSharp)
    A high-level object oriented programming language based on .NET Platform created specially for developing complex industrial program systems that could use multiprocessor architectures.

    Corn
    This language is designed for modeling concurrency and advanced computation. It provides lazy evaluation between concurrently worked threads, with object-oriented and functional style of semantic. This language can be also used for parallel computation.

    Joule: The Great Synthesis
    Has Joule Quick Reference 1.0, as HTML page; and The Joule Manual, divided into chapters, as Postscript files. Joule is most direct and important ancestor of E language. [ERights.org]


    Computers: Parallel Computing: Programming: Languages
    Computers: Programming: Threads
    Computers: Software: Operating Systems: Network: Distributed
    Computers: Software: Operating Systems: Parallel





    © 2005 GeneralAnswers.org