THE INNOVATION ON THE PCYNLITX PLATFORM
The pcynlitx platform offers a new programming paradigm which can be named as the programmable meta-programming technology. You can find out more information about the programmable meta-programming systems on the programming tutorial. You can read a brief introduction of the project from the link given in below.
On the site of multithreading, the innovation is deterministic multithreading. Different from classical single threaded softwares, in multithreaded softwares, multiple flows of execution run concurrently inside a single process . In other words, multithreaded softwares have multiple program flows. At the same time, the threads share the common resources which are allocated to the process such as memory and CPU. Therefore, the biggest problem on the current multi-thread software development process is managing this chaos and overcoming the problems caused by non-deterministic scheduling of the threads. In fact, the execution order and the priority of the threads reflect the term of scheduling. More specifically, scheduling is a decision about which thread will run and which thread will be suspended in a particular time interval. Unfourtunatelly, on the current systems, the schedulling of the threads are determined by the operating system and/or underlying hardware independently from the programmer. On the each run of the program, the threads and code sections are executed with different order. This situation breaks down input-output determinisim of the multi-thread applications and thus, developing, debugging and testing multi-thread applications much more difficult.
On the contrary, with pcynlitx, you can directly determine the execution order of the particular code sections ( the critical sections ) independently from the operating system and underlying hardware. Moreover, you can directly determine which code section will be executed in which order. By this way, with pcynlitx, developing and testing of a multithread software is much more easy. The term scheduling and why deterministic scheduling is necessary will be clarified with the explanations given in the following sections.
INTRODUCTION TO PCYNLITX PROJECT
Pcynlitx is an outcome of a scientific research study that is carried out by Erkam Murat Bozkurt who is a research engineer in Istanbul / Turkey. For more information about the developer of the platform, please look the developer section of the web site. Pcynlitx platform has been developed based on a new idea. This idea is to develop a software that can write codes in a collaboration with its user. By this way, Pcynlitx acts as a separate intelligent actor simplifying the multi-threaded software development process. Basically, pcynlitx is a code generator which can be programmed by the programmer. More specifically, It receives the requirements of the software to be developed from the programmer by means of a descriptor file and then, writes a C++ class library ( a thread library ).
Figure: How pcynlitx platform collects information from the user.
In practice, the programmers enter their preferences to the graphical user interface of the pcynlitx by means of some menus and pcynlitx builds the descriptor file automatically. Now, let we start to investigate why we need such a mechanism. In order to do that, at first, we need to understand what is the thread. If you don't know already what the multi-threading is basically and why it is necessary, please look the link given in below.
THE PHILOSOPHY OF THE PCYNLITX
Pcynlitx collects information about the context of the program from its user and produce an application specific thread management library. Then, the programmer of the pcynlitx writes the program codes using a threading library which is specialized for a particular application. Thanks to its collective programming approach, pcynlitx platform establishes an autonomous thread management system organizing the execution of the threads according to its user directives. In order to learn why application specific thread library construction is necessary, please look the page named as "Why pcynlitx is necessary" on the documentation menu or click the link given in in below as "Why application specific library construction is necessary?".
HOW PCYNLITX DIFFERS FROM THE OTHER TOOLS
Pcynlitx is not a threading library. Instead, it an application-specific threading library generator. On the standard threading libraries, the programmer can not determine exactly which code block will be executed in which order. However, in Pcynlitx, the programmer can determine how the threads interleave. This power of the Pcynlitx comes from the “application specific multi-threading library” construction process. The term “application specific multi-threading library” refers such a library that has written for a specific application. In other words, on the library, there are some special tools which are generated for a certain class or application and the library is constructed based on some application specific information such as how many thread will be created in run-time and what will the name of the thread functions be.
You can visit the source code repository
WHAT IS PCYNLITX
- First of all, Pcynlitx is not a multi-threading library. In fact, Pcydlitx is a multi-threading library generator ( or we can simply say that it is a multi-threading api generator ).
- More specifically, Pcynlitx produces a multi-threading library which is specialized according to your needs. If you want to learn more, please read the informations that are given in that page.
THERMS OF USE
- A certificate of registration has been received from US Copyright office for the modified version of the source code of the project
- A certificate of registration has been received from US Copyright office for the source code of the project
- A certificate of registration has been received from the copyright office of Turkey
- More control on threads : Give a certain number to each thread and control it with that numbers.
- Autonom thread management : on each operation, thread management tools record the numbers of the threads and provide the execution of the threads according to programmer’s directives.
- Easy to use : there is no need to learn any new coding style. It is only C++.
- Coding Simplicity : Pcynlitx makes abstraction to C++ threads and many operation are performed on the inside of the library constructed by
- Strong Documentation : You can find out many tutorial and technical documents on the web site
- Deterministic Multi Threading : Pcynlitx provides input-output determinisim
THE PROPERTIES OF PCYNLITX
- Code editing : You can use pcynlitx as a code editor. However, it is more than a code editor. Pcynlitx interracts with its user and it is a part of software development process.
- The interraction with the user : You can enter your preferences to the pcynlitx by means of its menus. In each step of software development process, pcynlitx asists the programmers
- Directory Tree View : You can search over the directories by means of the directory tree view option.
- Project management : You can build and manage your multi-thread application directly with pcynlitx.
- Special Library Construction : You can build your multi-threading library according to your reqirements
- Compiler : Pcynlitx uses gcc compiler as its compiler tool chain and wxWidgets as its graphical user interface toolkit.
- License : GNU GPLv3
- Introductory documents and tutorials has been updated ( You can download from both official web site and repository ).
- A new article has been published on ISO C++ web page