http://www.ngnc.net/ngnc_how_to_make_app.htm
"NGNC" trade in compatibility, performance, system complexity
Yuan Dejun (June 24, 2004)
(Before reading this article, if you read the following article, it will be easier to understand this article)
"NGNC," Interrupt "Return Results"
"" NGNIDE "Introduction"
Preface:
"NGNC" is a scripting language for "C" syntax rules, equipped with your own virtual machine and debugging environment. It doesn't pursue the exquisiteness of grammar, such as: C , C #. More advanced C grammar stems, just like many program masters to discuss how to implement as COM interfaces and virtual functions in COM interfaces.
What is "language"?
"Language" (computer language) is a tool, different versions, different layers of language, and various characteristics, which meet the needs of people. The birth of "NGNC" is to meet: reducing system complexity, increasing compatibility, while achieving performance needs.
Currently recognized layers of language: (from low to high) assembly language: (machine language), complete the instructions that the machine can understand, complete the functionality of programmers; the highest performance, but compatibility, complex The system will not use it to be used as the main development language.
C Language: It is the best language of performance and compatibility, especially ANSI C standardization for many system-level applications, Java, and currently have a lot of scripting languages to find the best solution to bridges to bridges. , "NGNC" is the same. And the flexibility of the C language is the master master is willing to chase.
C , C #: In the era of object-oriented, because of many followers, they will of course stand in the peak. More because of its advanced programming ideas, you can make system complexity greatly improve, and many masterpieces will not come from them. I am also a C supporter, I have not entered C # is completely my own "old" thinking.
Other advanced languages: Pascal, Delphi, Basic, etc.
Script language: SQL and other languages are based on specific applications, which can quickly expand the application system size, encapsulate specific application system engine, which reduces system complexity, and both compatibility. However, the scripting language is mostly interpreted, in order to improve system performance SQL can save compiled intermediate code on the server.
Java special case: It is different from the original intention of the application-based scripting language, which is currently a solution to the best compatibility.
How to build your app with NGNC?
"NGNC" is a scripting language. It has "compatibility", just like Java commitment to all Java developers to ensure that each developer's application can be smoothly running on the Java device.
"NGNC" communicates with other part of the project. Only use C language specification, and functions, to reduce the complexity of communication. Because I firmly believe that all people who have learned programming know what C is C, and the important concept of computer language "function" is everywhere. NGNC's function interface, which allows any language compilation module to call NGNC script functions (NGNC called SCALL, SCRIPT CALL), or the function in modules compiled any language can also be called by script, and CCall, c call. .
1, "NGNC" builds the starting point and other applications of the application, using the NGNC's function library, editing your code, starting from main, or WinMain starts by you, like the Java language, can be provided in NGNC On the basis of the standard library, use the NGNC script development to develop a complete application. 2, "Engine" package. If NGNC can only be used separately, it can only be a C language teaching tool. The development of NGNC is to provide high-performance development results (traditional language development, such as C ) to NGNC in the form of a function library plug-in, playing a "script" role by NGNC, at the same time, the application area can be expanded.
3, "Compatibility" and "Performance" trade-off: like compilation and advanced languages are the same as "compatible" and "performance". NGNC also needs, because the compilation target of the traditional language is the machine language, and the NGNC's compilation target is a virtual machine code, and the cost for "compatibility" is "performance" loss. NGNC's function mechanism allows developers to be free between SCALL and CCALL, only by configuring different libraries. There is no need to adjust any script source code or even compiled virtual machine code.
4, assembly, advanced language, NGNC mutual importance development model: assembly, advanced language is consistent with NGNC. Only, it is introduced because NGNC's core is also a high-level language and assembly work, and assembly can optimize other advanced language development applications, which can also optimize NGNC. NGNC is an open scripting platform that opens itself almost all optimized parts, and can replace the high-level language-compiled modules or compile. Even NGNC opens every module in the implementation of the entire script language, if the user is interested, you can prepare a scripting language of a new grammar rule, or expand the NGNC itself.
This is: "NGNC" is another choice for you, weighs compatibility, performance, and system complexity.