Functional programming languages, based on the functional programming paradigm, is a type of programming languages that consist of a set of (possibly recursive) function definitions and an expression whose value is output as the program's result.
Functional programing languages are one kind of declarative language.
They are based on the typed lambda calculus with constants.
There are no side-effects to expression evaluation so an expression.
Furthermore, an expression can always be replaced by its value without changing the overall result (referential transparency).
Functional programming languages have largely been emphasized in academia rather than in commercial software development.
Notable exceptions are Erlang (highly-concurrent telecom applications), J and K (financial analysis), and domain-specific programming languages like XSLT.
Important influences on functional programming have been the lambda calculus, the APL programming language, the Lisp programming language, and more recently the Haskell programming language.GA: Global Arrays The Global Arrays (GA) is a public domain toolkit that provides an efficient and portable shared-memory programming interface for distributed-memory computers.
Unlike other shared-memory environments, the GA model exposes to the programmer the non-uniform memory access (NUMA) characteristics of the high performance computers and acknowledges that access to a remote portion of the shared data is slower than to the local portion.
The locality information for the shared data is available, and a direct access to the local portions of shared data is provided.
Global Arrays have been designed to complement rather than substitute for the message-passing programming model.
The programmer is free to use both the shared-memory and message-passing paradigms in the same program, and to take advantage of existing message-passing software libraries.
Global Arrays are compatible with the Message Passing Interface (MPI).