📜 ⬆️ ⬇️

Pascal, Delphi and Oberon today

Hello to all.

To begin with, the delivery to Delphi and RAD Studio XE4 recently arrived, in which Delphi is declared as a multiplatform tool for rapid development for computers, laptops, tablets and mobile devices, including MAC, iPhone, iPAD, and Embarcadero has plans to make support mobile platform Android.

Delphi and FreePascal is Pascal today. One of my favorite programming languages. The language has come a long way from the "toys for scientists" to the most powerful universal development tool, which made great projects, for example, Total Commander .
')
Built on sound solutions, the core of the Pascal language has easily succumbed to improvement and power, and is suitable for the widest class of practical problems. In Russia, Delphi is especially popular and is still widely used. However, the development of the language goes on the principle of capacity building, and gradually Delphi becomes more cumbersome, catching up to the complexity of such monsters as PL / 1, C ++ and Ada. With a high probability, we can assume that the language will not become simpler, because it is necessary to maintain compatibility with the accumulated base of sources, etc. In the end, such a development strategy will inevitably lead to difficulties when complexity can no longer be controlled.

At the same time, there is a programming language that has turned out over several decades of practical teaching and solving various problems by means of a methodical and consistent refinement of Pascal. This is Oberon - the most beautiful of all minimalist languages ​​that few have heard of. I boldly assert: Today Pascal is not only Delphi (obtained by the method of extension), but also Oberon-2 / Component Pascal (obtained by the method of discarding, revising and clarifying the expediency of certain means). Due to the fact that the need for compatibility did not prevail over the author of the language, he was especially concerned with this topic and was not steamed. And the resulting language is a solid, compact, powerful, cross-platform in a broad sense (including not only modern platforms, but also Amiga , and even Atari ). On Component Pascal, I have successfully developed a midlet for the Java micro edition , I do not foresee difficulties in developing for Android. Except for one thing: the lack of infrastructure, and indeed, very few people know about this use of Oberons.

Oberon-2 and Component Pascal are multi-paradigm languages ​​for system and application programming, they are modular, component and object-oriented. Operating systems, compilers, and other programs developed in Oberon's dialects are often works of art themselves. They are beautiful, extraordinary, compact and worthy of all praise. Oberon is popular in the academic environment as a way of recording algorithms (replacing Fortran) and as the minimum language for research (see, for example, how many publications were published on Oberon on the website of SpringerLink ). It is ideal for learning to program. In Russia, there is an Informatics-21 project that promotes the use of Oberon for training future programmers, because, in addition to its technical merits, Oberon gives a good understanding of programming technologies and does not depend on the commercial interests of large corporations. Look at what my little niece made her mouth after a week of talking with me about programming . Thanks to the simplicity of the language, enthusiasts have developed many Oberon dialect compilers for various platforms.

Wirth always thought it right to design processors for languages, and not vice versa . But despite this, the Oberon programs are well converted into C, Java, and work on both the native and the .NET / JVM. A GPCP compiler for LLVM is being developed. I own the idea of ZXDev - the development environment on Oberon-2 for the eight-bit Z80 processor and the ZX Spectrum computer. The newest revision of the Wirth Oberon is called Oberon-07. It is even smaller in size than the Oberon-2, and adapted for ARM-processors and high-resolution architectures. Here is the direction of Pascal. Little known to the masses of programmers, but beautiful as a work of art. For more than seven years I have been actively using Oberon technologies for the benefit of my work, and I don’t want to program with something else.

Therefore, I appeal to enthusiasts who like Pascal and Delphi, who love coding for retro platforms. The XDev environment, which is designed as a base for cross-platform development, can be a much more interesting tool than you thought. It implements various translation schemes (from different languages) into the target code of various platforms, utilities for ease of development, visualizers and a set of libraries, both targeted to a specific platform and cross-platform. XDev is a modular and component environment, and subsystems are used for development for various platforms. The richest (and prepared) subsystem ZXDev (target platform: ZX Spectrum). ZXDev implements the translation scheme from the Oberon and Oberon-2 languages ​​in C, and using the SDCC compiler means already translating C and assembler into the machine code of the Z80 processor. The kit contains a smartlib utility (for convenient work with libraries and inclusion in the target binary only the machine code actually used in the program) and converters to the target formats TAP and TRD. There are several libraries, for example, Console, Laser, Basic, Graph. Development on ZXDev can be conducted either on Oberon-2 or C with assembly inserts, or in all languages ​​at once, all at once.

At all levels of XDev, almost one language is used as a high-level tool - Oberon-2. Of course, the C language is used for the intermediate presentation, and the command language of the BAT files is needed to bind Oberon components and third-party tools, but, in general, the aim is mono-lingual, especially since Component Pascal is the correct superset of Oberon and Oberon 2 Therefore, one language - both for the development of XDev itself, and for programming target platforms. We at the forum are trying to develop the Oberon language, building it up with the means that we consider necessary for practical development (for example, Oberon-07 has lost various types of integers, therefore it is of little use for development for 8-bit processors).

But in the XDev environment, of course, other translation schemes can be implemented, other programming languages ​​are added (planned: Component Pascal, Modula-2 Revision 2010, Objective Modula-2 , and, possibly, some dialect of object or ordinary Pascal) and target platforms. Oberon-environment BlackBox Component Builder (Oberon Microsystems) , expandable and open source, is used as the XDev component framework.

In addition to ZXDev, WinDev, LinDev, DosDev and JmeDev subsystems are also developed (byte-code Java microedition), and, in principle, there are no obstacles to make the subsystem for targeted development for Android / iOS, MSX, ColecoVision, NES / SEGA, Atari, Amiga, Palm OS, even under UC-NC with DVK / BK-0011 and under Mikrosh with Apogee / Christa / RK-86. And you have the opportunity to make for XDev support for any platform that interests you, both modern and retro. Here is my hobby, which ultimately led me to many years of programming. It all started with Pascal / Fast on the UK-NC. :)

So I invite everyone to our forum to learn more about our activities and of course about Oberon-technologies. You can help develop XDev, help with new ideas, influence your decisions, develop / adapt a new library or add a new platform. There are no restrictions on the language (s), on anything, just XDev is based on the desire to develop in the modular languages ​​of the European programming school, which are qualitatively different from the American C-like paradigm that dominates the IT market today. However, you don’t want to enter into the controversy, if you like C, then XDev is quite suitable for developing in C, though, then you probably prefer the traditional IDE, rather than the XDev environment.

Thank you for understanding.

Topics that may interest you:

How I came to Oberon. Why use it? Does he have any advantages
Oberons and Cross Platform
On the broadcast of Oberon in C (And why write on Oberon, if there is C?)
Development of games and programs for the ZX Spectrum in Oberon-2
Wednesday XDev: where to start?
Weekday development XDev
Powerful environment ZXDev for development in four languages ​​for the ZX Spectrum is ready for testing
How to create a new library for ZXDev
Graph Graphic Library Port (from Turbo Pascal) under ZXDev
The advantages of ZXDev over Code :: Blocks / SDCC for beginners to learn C

Source: https://habr.com/ru/post/178257/


All Articles