Neural parallel language

Neural parallel language (abbreviated NPL) is a general-purpose open-source programming language.[1] Its syntax is fully compatible with Lua. NPL provides essential functionality for building 3D/2D/Web/Server applications.[2] NPL provides a C/C++ API and native NPL libraries. NPL is a single language solution for advanced and interactive GUI, complex opengl/DirectX 3D graphics, scalable webserver and distributed software frameworks. It is cross-platform, high performance,[3] extensible and debuggable. It is a language system initially designed to operate like the brain. Nodes and connections are ubiquitous; threading and networking logics are hidden from developers. NPL can mix user-mode preemptive and non-preemptive code. It reflects the concurrency of Erlang and speed of Java/C++ in the same dynamic and weakly typed language.

Facts About NPL

Background & History

NPL prototype was designed by Li Xizhi in 2004, which was then called 'parallel oriented language'. In 2005, it was implemented together with ParaEngine, a distributed 3d computer game engine. In 2016, its open source code base grows to over 1 million and distributed in several NPL packages, and powers dozens of client and server projects.

NPL is initially designed to write flexible algorithms that works in a multi-threaded, and distributed environment with many computers across the network. More specifically, it is designed to be a single language solution for writing high-performance network algorithms, 3d simulation and visualization. Lua and C/C++ affinity was chosen from the beginning.

Communicate Like The Brain

Although we are still unclear about our brain's exact computational model, however, following fact seems ubiquitous in our brain.

Communication in NPL is the same as above. Each file can become a neuron file to receive messages from other neuron files. They communicate asynchronously without callback. As a result, no lock is required in NPL because there is no shared data; making it both simple and fast to write and test distributed algorithms and deploy software in heterogeneous environment.

Concurrency Model in NPL

The mental picture of most computer languages is to execute programs in sequential order. Concurrency is a language feature about writing code that runs concurrently. Traditional way of doing it is via threads and locks, which is very troublesome to write. The Actor Model which was first proposed by Carl Hewitt in 1973, takes a different approach to concurrency, which avoids the problems caused by threading and locks.

There are many implementations of concurrency model in different languages, they differ both in performance under different use cases, and in the programmers' mental picture when writing concurrent code.

NPL uses a hybrid approach, which give programmers the ability to run tens of thousands of tasks in a single thread or across multiple threads. More importantly, programmers do not need to write code to spawn a virtual process or write error-prone message loops. In short, NPL is designed to be fast, scalable and giving programmers a mental picture that is close to neurons in the brain.

See also NPL Concurrency Model[4] compared with erlang, GO, scala.

Software Projects Written In NPL Language

References

  1. "Official website for NPL programming language".
  2. ."Projects written in NPL language".
  3. "NPL performance report".
  4. "NPL concurrency model".
  5. "Software: paracraft software".
  6. "Server Software: wikicraft personal wiki builder".
  7. "Software: magic haqi 3d mmorpg".
  8. 1 2 "TaoMee Company (nasdaq:TAOM)".
  9. "Software: Kids Movie Creator".
  10. "Software: paperstar sandbox game".
This article is issued from Wikipedia - version of the 12/5/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.