HP Pascal is compatible with standardized unextended Pascal as well as Extended Pascal, with its own extensions.
|This programming-language-related article is a stub. You can help Wikipedia by expanding it.|
HP Pascal is compatible with standardized unextended Pascal as well as Extended Pascal, with its own extensions.
|This programming-language-related article is a stub. You can help Wikipedia by expanding it.|
1. Pascal (programming language) – A derivative known as Object Pascal designed for object-oriented programming was developed in 1985. Pascal, named in honor of the French mathematician, philosopher, before his work on Pascal, Wirth had developed Euler and ALGOL W and later went on to develop the Pascal-like languages Modula-2 and Oberon. Initially, Pascal was largely, but not exclusively, intended to teach structured programming. A generation of students used Pascal as a language in undergraduate courses. Variants of Pascal have also frequently used for everything from research projects to PC games. Newer Pascal compilers exist which are widely used, Pascal was the primary high-level language used for development in the Apple Lisa, and in the early years of the Macintosh. Parts of the original Macintosh operating system were hand-translated into Motorola 68000 assembly language from the Pascal sources, apollo Computer used Pascal as the systems programming language for its operating systems beginning in 1980. Object Pascal is still used for developing Windows applications but also has the ability to compile the same code to Mac, iOS. Another cross-platform version called Free Pascal, with the Lazarus IDE, is popular with Linux users since it also offers write once, codeTyphon is a Lazarus distribution with more preinstalled packages and cross compilers. Wirths intention was to create an efficient language based on structured programming, important features included for this were records, enumerations, subranges, dynamically allocated variables with associated pointers, and sets. To make this possible and meaningful, Pascal has a strong typing on all objects, similar mechanisms are standard in many programming languages today. This enables a very simple and coherent syntax where a program is syntactically nearly identical to a single procedure or function. The first Pascal compiler was designed in Zürich for the CDC6000 series mainframe computer family, Niklaus Wirth reports that a first attempt to implement it in Fortran in 1969 was unsuccessful due to Fortrans inadequacy to express complex data structures. The second attempt was implemented in a C-like language and then translated by hand to Pascal itself for boot-strapping, the GNU Pascal compiler is one notable exception, being written in C. The first successful port of the CDC Pascal compiler to another mainframe was completed by Welsh, the target was the ICL1900 series. This compiler, in turn, was the parent of the Pascal compiler for the Information Computer Systems Multum minicomputer and it is thought that Multum Pascal, which was completed in the summer of 1973, may have been the first 16-bit implementation. A completely new compiler was completed by Welsh et al. at QUB in 1977 and it offered a source-language diagnostic feature that was implemented by Findlay and Watt at Glasgow University. This implementation was ported in 1980 to the ICL2900 series by a team based at Southampton University, the first Pascal compiler written in North America was constructed at the University of Illinois under Donald B
2. OpenVMS – OpenVMS is a computer operating system for use in general-purpose computing. It is the successor to the VMS Operating System, that was produced by Digital Equipment Corporation, in the 1990s, it was used for the successor series of DEC Alpha systems. OpenVMS also runs on the HP Itanium-based families of computers, as of 2015, a port to the X86-64 architecture is underway. The name VMS is derived from virtual memory system, according to one of its architectural features. OpenVMS is a operating system, but source code listings are available for purchase. OpenVMS is a multi-user, multiprocessing virtual memory-based operating system designed for use in time sharing, batch processing, when process priorities are suitably adjusted, it may approach real-time operating system characteristics. The system offers high availability through clustering and the ability to distribute the system over multiple physical machines and this allows the system to be tolerant against disasters that may disable individual data-processing facilities. OpenVMS contains a user interface, a feature that was not available on the original VAX-11/VMS system. Versions of VMS running on DEC Alpha workstations in the 1990s supported OpenGL, customers using OpenVMS include banks and financial services, hospitals and healthcare, network information services, and large-scale industrial manufacturers of various products. As of mid-2014, Hewlett Packard licensed the development of OpenVMS exclusively to VMS Software Inc, VMS Software will be responsible for developing OpenVMS, supporting existing hardware and providing roadmap to clients. The company has a team of developers that originally developed the software during DECs ownership. In April 1975, Digital Equipment Corporation embarked on a project, code named Star. A companion software project, code named Starlet, was started in June 1975 to develop a new operating system, based on RSX-11M. These two projects were integrated from the beginning. Gordon Bell was the VP lead on the VAX hardware and its architecture, the Star and Starlet projects culminated in the VAX 11/780 computer and the VAX-11/VMS operating system. The Starlet name survived in VMS as a name of several of the system libraries, including STARLET. OLB. Over the years the name of the product has changed, in 1980 it was renamed, with version 2.0 release, to VAX/VMS. g. The smallest MicroVAX2000 had a 40MB RD32 hard disk and a maximum of 6MB of RAM, microVMS kits were released for VAX/VMS4.4 to 4.7 on TK50 tapes and RX50 floppy disks, but discontinued with VAX/VMS5.0
3. VAX – VAX is a discontinued instruction set architecture developed by Digital Equipment Corporation in the mid-1970s. The VAX-11/780, introduced on October 25,1977, was the first of a range of popular, a 32-bit system with a CISC architecture based on DECs earlier PDP-11, VAX was designed to extend or replace DECs various PDP ISAs. The VAX architectures primary features were virtual addressing and its instruction set. Later versions offloaded the compatibility mode and some of the less used CISC instructions to emulation in the system software. The VAX instruction set was designed to be powerful and orthogonal, when it was introduced, many programs were written in assembly language, so having a programmer-friendly instruction set was important. In time, as programs were written in higher-level language, the instruction set became less visible. One unusual aspect of the VAX instruction set is the presence of register masks at the start of each subprogram and these are arbitrary bit patterns that specify, when control is passed to the subprogram, which registers are to be preserved. Since register masks are a form of data embedded within the executable code and this can complicate optimization techniques that are applied on machine code. The native VAX operating system is Digitals VAX/VMS, the VAX architecture and OpenVMS operating system were engineered concurrently to take maximum advantage of each other, as was the initial implementation of the VAXcluster facility. Other VAX operating systems have included various releases of BSD UNIX up to 4. 3BSD, Ultrix-32, VAXELN, more recently, NetBSD and OpenBSD support various VAX models and some work has been done on porting Linux to the VAX architecture. The first VAX model sold was the VAX-11/780, which was introduced on October 25,1977 at the Digital Equipment Corporations Annual Meeting of Shareholders, bill Strecker, C. Gordon Bells doctoral student at Carnegie Mellon University, was responsible for the architecture. Many different models with different prices, performance levels, and capacities were subsequently created, VAX superminicomputers were very popular in the early 1980s. For a while the VAX-11/780 was used as a standard in CPU benchmarks, the actual number of instructions executed in 1 second was about 500,000, which led to complaints of marketing exaggeration. The result was the definition of a VAX MIPS, the speed of a VAX-11/780, within the Digital community the term VUP was the more common term, because MIPS do not compare well across different architectures. The related term cluster VUPs was informally used to describe the performance of a VAXcluster. The VAX-11/780 included a subordinate stand-alone LSI-11 computer that performed microcode load, booting and this was dropped from subsequent VAX models. Enterprising VAX-11/780 users could therefore run three different Digital Equipment Corporation operating systems, VMS on the VAX processor, and either RSX-11M or RT-11 on the LSI-11, the VAX went through many different implementations. The original VAX 11/780 was implemented in TTL and filled a cabinet with a single CPU
4. AlphaServer – AlphaServer was the name given to a series of server computers, produced from 1994 onwards by Digital Equipment Corporation, and later by Compaq and HP. As the name suggests, the AlphaServers were based on the DEC Alpha 64-bit microprocessor, some AlphaServer models were rebadged in white enclosures as Digital Servers for the Windows NT server market. The availability of upgrades and options was discontinued on 25 April 2008, support for the most recent AlphaServer systems, the DS15A, DS25, ES45, ES47, ES80 and GS1280 is being provided by HP Services as of 2008. These systems are scheduled to end of support sometime during 2012. In approximate chronological order, the following AlphaServer models were produced, the AlphaServer SC was a supercomputer constructed from a set of individual DS20L, ES40 or ES45 servers mounted in racks. Every node was connected to every other node using a Quadrics elan3 interconnect, an AlphaServer SC45 supercomputer was still ranked #6 in the world as late as November 2004. The AlphaServer GS1280 originally supported a maximum of 16 microprocessors, in October 2003, the number of microprocessors supported was increased to 64 and the supported memory capacity was doubled to 8 GB per microprocessor. HP AlphaServer range DIGITAL Product Catalogue Winter 1997, Digital Equipment International,1997, Compaq Alpha System and Model Code Names FreeBSD/alpha 6.1 Hardware Notes About NetBSD/alpha The OpenBSD/alpha port Debian Alpha system types
6. Pascal Script – Pascal Script is a free scripting engine that allows you to use most of the Object Pascal language within Delphi or Free Pascal projects at runtime. Was written completely in Delphi, it is composed of a set of units that can be compiled into an executable, Pascal Script started out as a need for a good working script, when there were none available at the time. One prominent use of Pascal Script is the Open Source Inno Setup project, Inno Setup is a widely used setup engine that uses Pascal Script as scripting engine to provide advanced scripting abilities during installation and uninstallation. Using Pascal Script, users can customize almost all parts of the setup, add new wizard pages, call into DLLs to add advanced features and provide custom behavior, Pascal Script is also used for server-side scripting in Pascal Server Pages. A full running and extended application is maXbox, maXbox a scripter studio with an inbuild delphi engine in one Exe. Designed for teaching/programming methods and algorithms for Win, Mac and Linux to build OP code plus support Arduino / Android, https, //github. com/maxkleiner/maXbox3/releases Pascal Script started out in 2001 with CajScript 1.0, which was soon superseded by CajScript 2.0. Version 2.0 interpreted scripts while it ran them, which had the disadvantage that every piece of code had to be reparsed every time the engine went over it. With Pascal Script 3.0, this was changed to a new model and this compiled script only contained the bare minimum that was required to execute the code. Later, when Carlo Kok joined RemObjects, it was renamed RemObjects Pascal Script and is now being maintained by RemObjects Software
7. Oxygene (programming language) – Oxygene is a programming language developed by RemObjects Software for Microsofts Common Language Infrastructure, the Java Platform and Cocoa. Oxygene is Object Pascal-based, but also has influences from C#, Eiffel, Java, F#, compared to the now deprecated Delphi. NET and Java runtimes. Oxygene is commercial product, and offers full integration into Microsofts Visual Studio IDE on Windows, as well as its own IDE, the command line compiler is available free. Oxygene is one of three languages supported by the underlying Elements Compiler toolchain, next to C# and Swift, from 2008 to 2012, RemObjects Software has licensed its compiler and IDE technology to Embarcadero to be used in their Embarcadero Prism product. Starting in the Fall of 2011, Oxygene became available in two editions, with the second edition adding support for the Java and Android runtimes. Starting with the release of XE4, Embarcadero Prism is no part of the RAD Studio SKU. Numerous support and upgrade paths for Prism customers exist to migrate to Oxygene, as of 2016, there is only one edition of Oxygene, which allows development on Windows or macOS, and which can create executables for Windows. NET, iOS, Android, Java and macOS. The Oxygene language has its origins in Object Pascal in general and Delphi in particular, Oxygene is an object-oriented language, which means it uses classes, which can hold data and execute code, to design programs. Classes are prototypes for objects, like the idea of an apple is the prototype for the one can actually buy in a shop. It is known that an apple has a colour, and that it can be peeled, Oxygene provides language-level support for some features of parallel programming. The goal is to use all cores or processors of a computer to improve performance, to reach this goal, tasks have to be distributed among several threads. The. NET Frameworks ThreadPool class offered a way to work with several threads. The Task Parallel Library was introduced in. NET4.0 to provide more features for parallel programming, Oxygene does not use Units like Delphi does, but uses. NET-namespaces to organize and group types. A namespace can span multiple files, but one file can only contain types of one namespace, the interface section follows the declaration of the namespace. It contains the uses-clause, which in Oxygene imports types from other namespaces, unlike in C#, in Oxygene alias names cannot be defined for namespaces, only for single type names. Following the uses-clause a file contains type declarations, like they are known from Delphi, As in C# and it can have a parameter args, Array of String for passing command line arguments to the program. More types can be declared without repeating the type-keyword, the implementation of the declared methods is placed in the implementation section, Files are always ended with end. As a. NET language, Oxygene uses the. NET type system, There are value types, the struct character of these types, which is part of. NET, is fully preserved
8. Clascal – Clascal was an object-oriented programming language developed in 1983 by the Personal Office Systems division of then Apple Computer, later renamed Apple Inc. It was an extension of Lisa Pascal, which in turn harked back to the UCSD Pascal model originally implemented on the Apple II and it was strongly influenced by the Xerox Palo Alto Research Center release of Smalltalk-80, v1, and by Modula. Clascal was the inspiration for Object Pascal on the Apple Macintosh in 1985, the MacApp application template was based on sample programs originally written in Clascal, and on the Toolkit, or class library. Ultimately Object Pascal evolved into the language of Borland Delphi, an Introduction to Clascal – Alpha Draft
9. Concurrent Pascal – Concurrent Pascal was designed by Per Brinch Hansen for writing concurrent computing programs such as operating systems and real-time monitoring systems on shared memory computers. A separate language, Sequential Pascal, is used as the language for applications programs run by the operating systems written in Concurrent Pascal, both languages are extensions of Niklaus Wirths Pascal, and share a common threaded code interpreter. The following describes how Concurrent Pascal differs from Wirths Pascal, several constructs in Pascal were removed from Concurrent Pascal for simplicity and security, variant records the goto statement procedures as parameters packed arrays pointer types file types. Concurrent Pascal includes class, monitor, and process data types, instances of these types are declared as variables, and initialized in an init statement. Classes and monitors are similar, both package private variables and procedures with public procedures, a class instance can be used by only one process, whereas a monitor instance may be shared by processes. Monitors provide the mechanism for interprocess communication in a Concurrent Pascal program. Only one process can execute within a given monitor instance at a time, a built in data type, the queue, together with operations delay and continue, are used for scheduling within monitors. Each variable of type queue can hold a process, if many processes are to be delayed in a monitor, multiple queue variables, usually organized as an array. The single process queue variable gives a complete control over medium-term scheduling. A process, like a class or monitor, has local variables, procedures, and an initial statement, the initial statement ordinarily executes forever, calling local procedures, class procedures, and monitor procedures. Language rules prevent deadlock by imposing a hierarchy on monitors, but nothing can prevent a monitor from erroneously forgetting to unblock a delayed process so the system can still effectively hang up through programming errors. The configuration of processes, monitors, and classes in a Concurrent Pascal program is established at the start of execution. The communication paths between these components are established by variables passed in the statements, since class and monitor instance variables cannot be used as procedure parameters. The following example shows the declaration of a monitor. Example programs with information on a free DOS compiler for a subset of the language
10. SuperPascal – Super Pascal is an imperative, concurrent computing programming language developed by Brinch Hansen. It was designed as a language, a thinking tool to enable the clear. This is in contrast with implementation languages which are often complicated with machine details and it was created to address the need at the time for a parallel publication language. Arguably, few languages today are expressive and concise enough to be used as thinking tools, SuperPascal is based on Niklaus Wirths sequential language Pascal, extending it with features for safe and efficient concurrency. Pascal itself was used heavily as a language in the 1970s. It was used to teach structured programming practices and featured in books, for example, on compilers. Brinch Hansen had earlier developed the language Concurrent Pascal, one of the earliest concurrent languages for the design of operating systems and this was based on his experience programming networks of transputers, which were general-purpose processors able to be connected in arrays, trees or hypercubes. Regular problems in computational science require only deterministic parallelism, that is, expecting communication from a particular channel, parallel scientific algorithms can be developed in an elegant publication language and tested on a sequential computer. When it is established a works, it can easily be implemented in a parallel implementation language. These then led to the requirements for a parallel publication language, The language should extend a widely used standard language with deterministic parallelism. The extensions should be in the spirit of the standard language, the language should make it possible to program arbitrary configurations of parallel processes connected by communication channels. These configurations may be defined iteratively or recursively and created dynamically, the language should enable a single-pass compiler to check that parallel processes do not interfere in a time-dependent manner. The key ideas in the design of SuperPascal was to provide a secure programming, SuperPascal is secure in that it should enable its compiler and run-time system to detect as many cases as possible in which the language concepts break down and produce meaningless results. Several features in Pascal were ambiguous or insecure and were omitted from SuperPascal, such as labels and goto statements, pointers, the parallel features of SuperPascal are a subset of occam 2, with the added generality of dynamic process arrays and recursive parallel processes. A parallel statement denotes that the number of statements it contains must be executed in parallel. Channels are not variables in themselves, but are identified by a value known as the channel reference. A channel is declared, for example, by the declaration which defines a new type named channel, a mixed type channel is restricted to transmitting only the specified types, in this case boolean and integer values. The channel c is initialised by the statement, open Message communication is then achieved with the send