|
SequenceL is a general purpose functional programming language, whose primary design objectives are performance on multicore hardware, ease of programming, and code clarity/readability. Its primary advantage is that it can be used to write straightforward code that automatically takes full advantage of all the processing power available, without the developer having to concern themselves with identifying parallelisms, avoiding race conditions, and the like. Programs written in SequenceL can be compiled to multithreaded code that runs in parallel with no explicit indications from the programmer of how or what to parallelize. (Current versions of the SequenceL compiler generate C++ and OpenCL code, though other languages may also be supported.) An OS-specific runtime manages the threads safely, automatically providing parallel performance according to the cores available. ==History== SequenceL was developed over a 20-year period beginning in 1989, primarily at Texas Tech University. Primary funding was provided by NASA, which originally wanted to develop a requirements language which was “self-verifying” - that is, once written, the requirements could be “executed,” and the results verified against the desired outcome. The principal researcher on the project was initially Dr. Daniel Cooke, who was soon joined by Dr. Nelson Rushton (another Texas Tech professor) and later Dr. Brad Nemanich (then a PhD student under Dr. Cooke). The goal of creating a language that was simple enough to be readable, but unambiguous enough to be executable, drove the inventors to settle on a declarative language approach, where the programmer describes desired results, rather than the means of achieving them. The language is then free to solve the problem in the most efficient manner it can find. As the language evolved, the researchers developed new computational approaches, including Consume-Simplify-Produce (CSP). In 1998 research began to apply SequenceL to parallel programming. This culminated in 2004 when it took its current form with the addition of the Normalize-Transpose (NT) semantic. NT is the semantic work-horse, being used to simplify and decompose structures, based upon a dataflow like execution strategy similar to GAMMA and NESL. The NT semantic achieves a goal similar to that of the Lämmel and Peyton-Jones’ boilerplate elimination. All other features of the language are definable from these two laws - including recursion, subscripting structures, function references, and evaluation of function bodies. Though it had not been the original intent, these new approaches allowed the language to parallelize a large percentage of the operations it performed, transparently to the programmer. In 2006 a prototype auto-parallelizing compiler was developed at Texas Tech University. In 2009, Texas Tech licensed the intellectual property to Texas Multicore Technologies, Inc. (TMT), for follow-on commercial development. Texas Tech continues research into SequenceL via additional research grants, as well as through collaboration with TMT. SequenceL has been used in commercial-scale applications where algorithmic accuracy, code transparency, and/or multi-processor performance, have been crucial. These applications have included space craft navigation, aviation decision support, target tracking, image processing, audio processing, network scheduling, database processing, and industrial control systems. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「SequenceL」の詳細全文を読む スポンサード リンク
|