NHI1 10.0
|
NHI1 -
theKernel -
theLink -
theConfig -
theSq3Lite -
theCompiler -
theBrain -
theGuard -
theLib -
theATL
Nhi1Label - Nhi1BuildExtension - Nhi1Config - Nhi1Exec - Nhi1Switch - Nhi1Tags - Nhi1Docs |
An alphabetically sorted list of all keywords with references to their documentation:
PLMK internals:
programming languages:
environment variables:
commercial:
technology:
The following subsections provide a list of all keywords that are recognized by NHI1.
The alc is the abbreviation for "all languages compiler" where languages stands for programming languages as well as any form of structured data.
The alc-compiler is the central tool in the Programming-Language-Micro-Kernel (PLMK) and is used to take over error-prone and monotonous tasks that otherwise take a lot of time. The guiding principle in the alc-compiler is simply explained:
a code is only correct and valid if the alc-compiler has written it
That sounds a bit aloof at first, but it\'s the truth. because if you take programming seriously, you have to admit to yourself that people are far too imperfect to write really error-free code.
In computer science, garbage collection (GC) is a form of automatic memory management. The garbage collector attempts to reclaim memory that was allocated by the program, but is no longer referenced;
such memory is called garbage.
https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
Heap memory is a region of computer memory used for dynamic allocation of objects at runtime.
It is a dynamic area of memory where blocks of memory are allocated and deallocated dynamically as needed,
in contrast to the stack memory, where memory is allocated and deallocated in a last-in-first-out (LIFO) manner.
Objects stored in the heap have a longer lifetime than objects stored in the stack, as heap-allocated objects persist
until they are explicitly deallocated or until the program ends.
https://computersciencewiki.org/index.php/Heap_memory
MkObjectC - managed-object details
Managed-Object-Technology (MOT) is a class system in C that is designed to integrate automatically into other software, which of course also includes other programming languages.
The core of the MOT is the class and the class is a C struct with a link between:
The type is a struct and a struc which follows the MOT-format is called a MOT-class.
The type MyClassS
is always related to the class MyClassC
.
MkBufferS
versa MkBufferC
.A MOT-class always starts with a union
called super.
union
is always the MkObjectS instance-base.A MOT-class is not just limited to the C programming language, but the technology allows the SAME class to be used as a MOT-class in almost all programming languages: "write once → use everything" .
The MOT-Wrapper is used to connect the MOT-Class (lang=C) to a Target-Programming-Language (TPL) (lang=C++,C#,VB.NET,Java,Python,Ruby,Perl,PHP,Tcl or GO).
Two connection methods are conceivable:
delete ptr
) from the outside, the MOT instance is also deleted, which is difficult to control in a complex scenario (e.g. in the event processing of an application server) and ultimately creates "disorder" in the Programming-Language-Micro-Kernel (PLMK).The NULL-Intance in Managed-Object-Technology (MOT) is the counterpart to the NULL
value pointer in C …
NULL
separately from each other so that the TPL and MOT are separated.NULL
but two.NULL
. The meta-code is an importand part of the alc compiler because this is the glue between the input file (e.g. api-definition} and the output files (e.g. the code)
The best definition of meta-code is a wrapper around a given API that follows the Programming-Language-Micro-Kernel (PLMK) programming style.
The meta-compiler is the tool to generate the meta-file from the meta-header and the meta-parser.
The meta-file is created by the meta-code-compiler (META-COMPILER) using the meta-code-parser-extension (META-PARSER), meta-code-external-header-file (META-HEADER) and optional the meta-code-header-wrapper-file (META-WRAPPER) as input.
The meta-file is:
The external-header-file is the source of the API information and the goal of the Programming-Language-Micro-Kernel (PLMK) in conjunction with the All-Language-Compiler (ALC) is to use this file to provide language binding for a variety of languages.
The meta-library is either created directly by the programmer or is the meta-code-wrapper around a native-library created by the meta-code-compiler (META-COMPILER).
The native-meta-library is the link between the meta-library and the Target-Programming-Language (TPL), with the connection being established via the Managed-Object-Technology (MOT).
The meta-parser is a C compliant extension to the C programming language to associate an attribute with an C-object-definition (e.g. function, struct, enum, argument etc.)
If an external-header-file cannot be changed, it is a good idea to call this file via a wrapper and then add the changes using __parser__global__(...)
.
The NULL-Value in Managed-Object-Technology (MOT) is the counterpart to the NULL
value in C …
This problem looks simpler than it is because NULL
is not defined in every language.
TCL e.g. does not understand the NULL
as a data type and an approximation with ""
is only correct to the extent that the target API also understands the ""
as a NULL-Value.
Unfortunately, this is not always the case and therefore:
NULL
is explicitly required the MK_NULL
is used in C . NULL
as string (MK_STRN) is required then the string "MK_NULL"
is used in C.To support the NULL
the following items are defined:
"MK_NULL"
into the MK_NULL
pointer wherever a pointer is expected as a return value. The PLMK is the summary of all tools, libraries and technologies used to build and use the microkernel.
The PLMK includes theKernel and theCompiler as well as the build environment.
This structure is clearly defined by separating concerns into three distinct programming layers: -# the library-layer (\ref \selfref), -# the tool-layer (<a href="../../theCompiler/main/index.htm">theCompiler</a> and build tools), -# the target-layer (the API seen by the \ref TPL programmer). <dl> <dt> library-layer <dd> The \e library-layer implement the <a href="../../theKernel/main/index.htm">theKernel</a> library and is responsible for the \e quality-target of the entire project. - implementation of the \e managed-object technology - providing basic classes for: \ref doc_mk_c_MkBufferC "buffer", \ref doc_mk_c_MkBufferListC "list", \ref doc_mk_c_MkBufferStreamC "stream", \ref doc_mk_c_MkLogFileC "logging", \ref doc_mk_c_MkRuntimeC "runtime" and \ref doc_mk_c_MkErrorC "error" - establishing and managing the \e library-items - providing the \e startup and \e cleanup API - providing the \e logging, \e debugging and \e error API - providing the \e memory and garbage-collection API - written in plain \ref C_lang <dt> tool-layer <dd> The \e tool-layer creates the tools and is responsible for the integration of all components into the <a href="../../NHI1/main/index.htm">NHI1</a> framework. \li implementation of the \e project and build technology. \li implementation of the \e token-stream-compiler technology \li generate the source-code for the \e target-layer. \li written in plain \ref C_lang, \ref TCL_lang and the \ref TPL <dt> target-layer <dd> The \e target-layer is the \e API used by the \e target-language-programmer. \li written in plain \ref TPL </dl>
A RUNTIME is a thread-local structure that maps the global namespace of a meta-code-library (META-LIBRARY) and is initialized when a new thread is started.
The kernel-runtime MkRuntimeS is always present and maps the meta-kernel.
TPL describes the set of all programming languages supported by the Programming-Language-Micro-Kernel (PLMK).
C is a general-purpose, procedural, high-level programming language used in the development of computer software and applications, system programming, games, and more.
The C programming language is known for its simplicity and efficiency. It is the best choice to start with programming as it gives you a foundational understanding of programming.
C++ is the most used and most popular programming language developed by Bjarne Stroustrup. C++ is a high-level and object-oriented programming language. This language allows developers to write clean and efficient code for large applications and software development, game development, and operating system programming. It is an expansion of the C programming language to include Object Oriented Programming(OOPs) and is used to develop programs for computers. This C++ Tutorial will cover all the basic to advanced topics of C++ like C++ basics, C++ functions, C++ classes, OOPs and STL concepts.
C++ is a most popular cross-platform programming language which is used to create high-performance applications and software like OS, Games, E-commerce software, etc. It was developed by Bjarne Stroustrup, as an extension of C language. C++ give a high level of control over system resources and memory.
C# is the most common programming language used to develop multiple applications in the.NET framework, and it was introduced by Microsoft in 2000. It was designed to be a simple, object-oriented programming language that can be used to create a wide range of applications and software.
It features a clear syntax, an object-oriented nature, and platform independence, which makes it simpler for developers to organise their code and makes it more legible and manageable.
It is platform-independent in the sense that it may be used to create programmes that operate on different platforms such as Windows, macOS, Linux, and mobile devices. This makes C# a versatile language.
Developed by Sun Microsystems in 1995, Java is a highly popular, object-oriented programming language. This platform independent programming language is utilized for Android development, web development, artificial intelligence, cloud applications, and much more.
Golang is a procedural and statically typed programming language having the syntax similar to C programming language. Sometimes it is termed as Go Programming Language. It provides a rich standard library, garbage collection, and dynamic-typing capability. It was developed in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson at Google but launched in 2009 as an open-source programming language and mainly used in Google’s production systems. Golang is one of the most trending programming languages among developers.
The term PHP is an acronym for – Hypertext Preprocessor. PHP is a server-side scripting language designed specifically for web development. It is open-source which means it is free to download and use. It is very simple to learn and use. The file extension of PHP is “.php”.
PHP was introduced by Rasmus Lerdorf in the first version and participated in the later versions. It is an interpreted language and it does not require a compiler.
Perl is a general purpose, high level interpreted and dynamic programming language. Perl supports both the procedural and Object-Oriented programming. Perl is a lot similar to C syntactically and is easy for the users who have knowledge of C, C++. Since Perl is a lot similar to other widely used languages syntactically, it is easier to code and learn in Perl. Programs can be written in Perl in any of the widely used text editors like Notepad++, gedit, etc.
This Programming Language Python Tutorial is very well suited for beginners and also for experienced programmers. This specially designed free Python tutorial will help you learn Python programming most efficiently, with all topics from basics to advanced (like Web-scraping, Django, Learning, etc.) with examples.
Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. Ruby is a pure Object-Oriented language developed by Yukihiro Matsumoto. Everything in Ruby is an object except the blocks but there are replacements too for it i.e procs and lambda. The objective of Ruby’s development was to make it act as a sensible buffer between human programmers and the underlying computing machinery.
VB.NET stands for Visual Basic. Network Enabled Technologies. Microsoft released the .NET platform in 2001, that supports Visual Basic .NET which is an upgrade to the last version of VB programming language. It is a high-level programming language for the Microsoft .NET Framework. It is also possible to run VB.NET on Linux and MAC operating systems.
Visual Basic or VB is a programming language was initially released in 1991. It was the first programming language that directly supported programmable graphical user interface using language-supplied objects. From that time until 2002, there were 7 other versions released, each version having features that increased the power of the language.
The build root directory, the real directory used is NHI1_abs_top_builddir
The extension root directory, the real extension directory used is NHI1_EXT
The generated-files root directory, the real generated-files directory used is NHI1_abs_top_gendir
The real source directory: is same as NHI1_abs_top_srcdir
The real build directory: NHI1_BUILD/NHI1_target/NHI1_setup
The real extension directory: NHI1_EXT/NHI1_target/NHI1_setup
The real generated-files directory: NHI1_GEN/NHI1_target/NHI1_setup/...
The real source directory: is same as NHI1_HOME
The setup is the last part of the build-directory :
A setup is created with Nhi1Config and is just the configure
of the build directory.
The target is the second to last part of the build directory:
x86_64-suse-linux-gnu
./config.guess
of the automake/autoconf
build environment.configure
script must accept the value.Microsoft Corporation is an American multinational technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became highly influential in the rise of personal computers through software like Windows, and the company has since expanded to Internet services, cloud computing, video gaming and other fields. Microsoft is the largest software maker, one of the most valuable public U.S. companies, and one of the most valuable brands globally.
https://en.wikipedia.org/wiki/Microsoft
Mono is a free and open-source software framework that aims to run software made for the .NET Framework on Linux and other OSes. Originally by Ximian which was acquired by Novell, it was later developed by Xamarin which was acquired by Microsoft. In August 2024, Microsoft transferred ownership of Mono to WineHQ.
https://en.wikipedia.org/wiki/Mono_(software)
The .NET platform (pronounced as "dot net") is a free and open-source, managed computer software framework for Windows, Linux, and macOS operating systems. The project is mainly developed by microsoft employees by way of the .NET Foundation and is released under an MIT License.
New versions of the .NET platform are released annually, typically in November. The most recent version of .NET is .NET 9, released in November 2024, while the current long-term support (LTS) version is .NET 8, released in November 2023 and scheduled to receive updates until November 2026.
https://en.wikipedia.org/wiki/.NET
Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open-source software may be developed in a collaborative, public manner. Open-source software is a prominent example of open collaboration, meaning any capable user is able to participate online in development, making the number of possible contributors indefinite. The ability to examine the code facilitates public trust in the software.
https://en.wikipedia.org/wiki/Open-source_software
openSUSE is a free and open-source Linux distribution developed by the openSUSE project. It is offered in two main variations: Tumbleweed, an upstream rolling release distribution, and Leap, a stable release distribution which is sourced from SUSE Linux Enterprise.
https://en.wikipedia.org/wiki/OpenSUSE
Oracle Corporation is an American multinational computer technology company headquartered in Austin, Texas. Co-founded in 1977 by Larry Ellison, who remains executive chairman, Oracle ranked as the third-largest software company in the world by revenue and market capitalization as of 2020, and the company's seat in Forbes Global 2000 was 80 in 2023.
The company sells database software, particularly the Oracle Database, and cloud computing. Oracle's core application software is a suite of enterprise software products, such as enterprise resource planning (ERP) software, human capital management (HCM) software, customer relationship management (CRM) software, enterprise performance management (EPM) software, Customer Experience Commerce (CX Commerce) and supply chain management (SCM) software.
https://en.wikipedia.org/wiki/Oracle_Corporation
Unix (trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969[1] at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others. Initially intended for use inside the Bell System, AT&T licensed Unix to outside parties in the late 1970s, leading to a variety of both academic and commercial Unix variants from vendors including University of California, Berkeley (BSD), Microsoft (Xenix), Sun Microsystems (SunOS/Solaris), HP/HPE (HP-UX), and IBM (AIX).
https://en.wikipedia.org/wiki/Unix
Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries—most of which are provided by third parties—to create a complete operating system, designed as a clone of Unix and released under the copyleft GPL license.
https://en.wikipedia.org/wiki/Linux
9.a (client-server) One interpretation is that multiple clients connect to the same server.
An application server is a server that hosts applications or software that delivers a business application through a communication protocol. For a typical web application, the application server sits behind the web servers.
An application server framework is a service layer model. It includes software components available to a software developer through an application programming interface. An application server may have features such as clustering, fail-over, and load-balancing. The goal is for developers to focus on the business logic.
https://en.wikipedia.org/wiki/Application_server
In computer science, garbage collection (GC) is a form of automatic memory management. The garbage collector attempts to reclaim memory that was allocated by the program, but is no longer referenced; such memory is called garbage. Garbage collection was invented by American computer scientist John McCarthy around 1959 to simplify manual memory management in Lisp.
https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields (often known as attributes or properties), and code in the form of procedures (often known as methods). In OOP, computer programs are designed by making them out of objects that interact with one another.
Many of the most widely used programming languages (such as C++, Java, and Python) are multi-paradigm and support object-oriented programming to a greater or lesser degree, typically in combination with imperative programming and declarative programming.
https://en.wikipedia.org/wiki/Object-oriented_programming
In computing, POSIX Threads, commonly known as pthreads, is an execution model that exists independently from a programming language, as well as a parallel execution model. It allows a program to control multiple different flows of work that overlap in time. Each flow of work is referred to as a thread, and creation and control over these flows is achieved by making calls to the POSIX Threads API. POSIX Threads is an API defined by the Institute of Electrical and Electronics Engineers (IEEE) standard POSIX.1c, Threads extensions (IEEE Std 1003.1c-1995).
Implementations of the API are available on many Unix-like POSIX-conformant operating systems such as FreeBSD, NetBSD, OpenBSD, Linux, macOS, Android[1], Solaris, Redox, and AUTOSAR Adaptive, typically bundled as a library libpthread. DR-DOS and Microsoft Windows implementations also exist: within the SFU/SUA subsystem which provides a native implementation of a number of POSIX APIs, and also within third-party packages such as pthreads-w32, which implements pthreads on top of existing Windows API.
https://en.wikipedia.org/wiki/Pthreads
In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. In many cases, a thread is a component of a process.
The multiple threads of a given process may be executed concurrently (via multithreading capabilities), sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variables at any given time.
The implementation of threads and processes differs between operating systems.
https://en.wikipedia.org/wiki/Thread_(computing)
In computer programming, thread-local storage (TLS) is a memory management method that uses static or global memory local to a thread. The concept allows storage of data that appears to be global in a system with separate threads.
Many systems impose restrictions on the size of the thread-local memory block, in fact often rather tight limits. On the other hand, if a system can provide at least a memory address (pointer) sized variable thread-local, then this allows the use of arbitrarily sized memory blocks in a thread-local manner, by allocating such a memory block dynamically and storing the memory address of that block in the thread-local variable. On RISC machines, the calling convention often reserves a thread pointer register for this use.
https://en.wikipedia.org/wiki/Thread-local_storage
In computer programming, a thread pool is a software design pattern for achieving concurrency of execution in a computer program. Often also called a replicated workers or worker-crew model, a thread pool maintains multiple threads waiting for tasks to be allocated for concurrent execution by the supervising program. By maintaining a pool of threads, the model increases performance and avoids latency in execution due to frequent creation and destruction of threads for short-lived tasks. The number of available threads is tuned to the computing resources available to the program, such as a parallel task queue after completion of execution.