NARS System Developer Suggested Knowledge Prerequisites
NARS Systems Developer Suggested Knowledge Prerequisites:
Background
All existing computer systems generally require some basic level or prerequisite of programming knowledge in order to better understand their systems, interoperability, platform dependencies, how those systems work, maintain systems and most importantly - improve functionality. If you are an APL programmer yet want to further learn more about how NARS APL Interpreter works, by all means, jump right in and start looking at NARS C Programming Language source code; strong C/C++ language familiarity is not necessary if you merely want to do APL programming in NARS highly evolved APL. Again and however, if you want to take a giant next step toward 'improving NARS system functionality' and better understanding how NARS APL Nested Arrays (in C) Interpreter works - then continue reading on.
Strongly Recommended C/C++ Programming Knowledge Prerequisites
NARS APL Interpreter is technically written in the C programming language, although its source code also and in many important ways resembles the C++ programming language. Therefore a strong working knowledge of C/C++ is highly recommended and suggested, particularly if you are seriously interested in NARS source code.
Further, NARS makes intensive use of Pointers. Without a highly detailed, comprehensive and broad-based knowledge of working with Pointers in C/C++ you will find it extraordinarily difficult to comprehend much of NARS C Source Code - even to the point where you might give up or abandon an otherwise fascinating APL and nested arrays system exploration, written using a high-level programming language.
As a first step and to test your knowledge of Pointers, try taking the following C/C++ Pointers tests at SanFoundry:
- SanFoundry Aptitude Questions and Answers on Pointers.
- C++ Programming Questions and Answers – Pointers into Arrays.
- Pointers to Functions.
If you can score 95% or higher on the above combined tests, your knowledge of Pointers in C/C++ is probably sufficient to better understand and work with pointers in NARS source code. Additionally, it is not just good enough to memorize the answers at the above exercises/links. Take any and all time necessary to fully explore and deeply comprehend how and why the given exercise answers apply, including all syntax involved and what each item of syntax attempts to perform/create/solve. Expert, successful programming - is all about getting the details right, as well as correctly implementing overall desired functionalities.
Obviously, a B.S./B.A. degree in Computer Science would be very helpful to better understand NARS source code - although equivalent and or more experience time actually programming in C/C++ and or other computer languages is/are very helpful.
The above requirements are not designed to block or deter any serious or determined programmer from working with or augmenting NARS C Source Code. It is something, however, to seriously consider.
NARS in its entirely represents a highly evolved, very machine-efficient and expert APL programming system, originally conceived of and developed [primarily even solely] by Bob Smith. If you are serious about improving APL/NARS - then a serious, thorough working knowledge of C/C++ is a minimum prerequisite, to effectively work with NARS' professional, virtuoso level, standards-compliant source code and APL/nested arrays system.
In short, beginners are welcome, experts-highly-in-demand. This by the way is also true of programming workplaces, and the programming world generally.
Happy computing!
Go or return to - Building NARS Executable.