Cyclone is intended to be a secure C language dialect. It is designed to avoid buffer overrides and other vulnerabilities that are possible in C programs, without losing C’s power and convenience as a system programming tool.
Cyclone development was initiated as a joint project by AT&T Labs Research and the Greg Morrisett Group at Cornell in 2001. Version 1.0 was released on May 8, 2006.
The main purpose of its development is to make C programs more protected from errors and vulnerabilities, such as infinite buffer inflow, with minimal loss of efficiency and continuity. The idea is to take effective means of protection from high-level languages and implement them in a lower-level language.
The basic elements of the development were developed by Dan Grossman, Trevor Jim and Greg Morrisett from Cornell University in designing and implementing the Typed Assembly Language (TAL) with strict typing.
Compiler version 1.0 was released on May 8, 2006. It applies to the terms of GNU GPL version 2.0. Currently, the project is officially closed with the formulation of “achieved research objectives.” Some design ideas are used in Rust programming language.
Cyclone differs from C primarily by stricter writing and, if necessary, introducing runtime controls, for example, meeting matrix boundaries. The work with the clues has been significantly extended and formalized, but the arithmetic techniques of pointers that are familiar to C programmers continue to work.
The language has added many convenient features from C ++, C99 and GCC. A new data type @tagged union has been introduced – an analogue of the c-union, which keeps information about the type of data it is currently storing.
The biggest innovations are related to the ideas borrowed from working with data types in the ML language. It is a flexible static printing system that facilitates the description of different recursive structures (lists, trees, etc.) and allows the use of polymorphism and generalized programming. The programmer can completely control the type matching process. Cyclone accepts type inference.
The new language is very close to C, which allows with minimal effort to transfer the applications written in C to it. To date, Cyclone creators have managed to develop a simple web server, which in their opinion, is completely immune to common errors and vulnerabilities.
Cyclone implements three types of pointer:
1. * (normal type)
2. @ (never-NULL pointer), and
3.? (the only type with pointer arithmetic allowed)
The purpose of introducing these new types of indicators is to avoid common problems when using the indicators.
DarkBASIC is a programming language specially created by The Game Creators specifically for the creation of three-dimensional and two-dimensional games. The language structure is borrowed from BASIC, and the language is similar to AMOS, used on Amiga.
Almost all operators have switched from BASIC to DarkBASIC and have added specific commands to the game engine developed in The Game Creators to create games using DirectX.
DarkBASIC Professional is developed as a replacement for DarkBASIC.
Unlike DarkBASIC, the “professional” version generates the machine code. The language is essentially the same as DarkBASIC, with some additions. In particular, it is possible to combine simple types in structures.
In November 2009, The Game Creators, when they turned ten years old, they released free electronic versions of the DarkBASIC Professional program.
DarkBasic Professional is currently an open-source software.