Modern Object Pascal guide

Link to Quick Modern Object Pascal for Programmers

Michalis Kamburelis and contributors: Maciej Izak

There are many books and resources about Pascal out there, but too many of them talk about the old Pascal, without classes, units or generics.

So I wrote this quick introduction to what I call modern Object Pascal. Most of the programmers using it don’t really call it “modern Object Pascal”, we just call it “our Pascal”. But when introducing the language, I feel it’s important to emphasize that it’s a modern, object-oriented language. It evolved a lot since the old (Turbo) Pascal that many people learned in schools long time ago. Feature-wise, it’s quite similar to C++ or Java or C#.

  • It has all the modern features you expect — classes, units, interfaces, generics…
  • It’s compiled to a fast, native code,
  • It’s very type safe,
  • High-level but can also be low-level if you need it to be.

It also has excellent, portable and open-source compiler called the Free Pascal Compiler, http://freepascal.org/ . And an accompanying IDE (editor, debugger, a library of visual components, form designer) called Lazarushttp://lazarus.freepascal.org/ . Myself, I’m the creator of Castle Game Engine, http://castle-engine.sourceforge.net/ , which is a cool portable 3D and 2D game engine using this language to create games on many platforms (Windows, Linux, MacOSX, Android, iOS, web plugin).

This introduction is mostly directed at programmers who already have experience in other languages. We will not cover here the meanings of some universal concepts, like “what is a class”, we’ll only show how to do them in Pascal.

See here!

Oberon Linux Revival

OLR is the Oberon System with Gadgets running natively on the Linux Kernel of X86, MIPS and ARM processors. It is a consolidation effort to make a single distribution from Linux Native Oberon, ARM Linux Oberon and MIPS Linux Oberon.

Basis of the system is the latest Alpha of PC Native Oberon of ETH Zürich. Main changes are the filesystem which is not based on OFS any more and a more direct display system. Object/symbol files are in olr/x86/ , olr/mips/ and olr/arm/ for X86, MIPS and ARM

Oxford Oberon CompilerA fairly portable compiler, runs on Windows/Ubuntu, Debian and Debian derivatives, OS X, Raspberry Pi. It uses the Objective Caml runtime, but is statically linked. A, checklist for Oberon-07 features/compatibility is available for tracking future planned support of Oberon-07.

Vishap Oberon CompilerA new, well maintained, and natively both 32-bit and 64-bit Oberon-2 compiler, which is highly portable. Runs on Linux x86/AMD64/ARM 4-7 including Raspberry Pi/OS X; FreeBSD). Untested on Windows. Voc also includes a simple Oberon-07 compiler. The compiler uses static linking, but a dynamic run-time has been discussed as a future possibility. The author also has a proprietary compiler he worked on at ETH, but which is not publically available.

Someday I want to try this out!

Delphi

gr782dia266

Delphi, Greece, visited in 1978. The temple where the oracle was located.

Delphi is an integrated development environment (IDE) for console, desktop graphical, web, and mobile applications.[1]

Delphi’s compilers use their own Object Pascal dialect of Pascal and generate native code for several platforms: Windows NT (IA-32 and x64), OS X (IA-32 only), iOS and Android.

Delphi was originally developed by Borland as a rapid application development tool for Windows, and as the successor of Borland Pascal. Delphi and its C++ counterpart, C++Builder, shared many core components, notably the IDE and the Visual Component Library (VCL), but remained separate until the release of RAD Studio 2007. RAD Studio is a shared host for Delphi, C++Builder, and others.

In 2006, Borland’s developer tools section were transferred to a wholly owned subsidiary known as CodeGear, which was sold to Embarcadero Technologies in 2008.

I have followed the Delphi upgrades up till Delphi 7, aimed at Windows XP. The price became too high after that version. It still runs (with some help) on current Windows versions.