Giter Site home page Giter Site logo

dualbrain / gpcp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from k-john-gough/gpcp

0.0 0.0 0.0 735 KB

Gardens Point Component Pascal is an implementation of the Component Pascal Language (CP). There are implementations for both the CLR and the JVM.

License: Other

C++ 2.16% Java 9.05% C# 2.95% Component Pascal 85.69% Batchfile 0.15%

gpcp's Introduction

Gardens Point Component Pascal (GPCP)

Getting Started

Project Description

Gardens Point Component Pascal is an implementation of the Component Pascal Language (CP). There are implementations for both the CLR and the JVM.

Component Pascal is an object oriented language in the Pascal family. Its closest relatives are Oberon-2 and Oberon.

Gardens Point Component Pascal (gpcp) is an implementation of the language which was created for both the .NET and JVM. Both versions are here.

gpcp for .NET was one of the language implementations created for the .NET platform as part of Microsoft's "Project-7" which demonstrated the cross-language capability of .NET. The first release of the language was in mid-2000, at the Professional Developer's Conference, where .NET was announced. The language was also used as the running example in the book "Compiling for the .NET Common Language Runtime" (Prentice-Hall 2002).

gpcp provides a number of extensions to the standard Component Pascal language. These extensions are provided to allow programs to access the rich capabilities of the base class libraries of the .NET system. Thus types defined in gpcp programs are able to declare that they implement interfaces, or provide methods that override protected methods defined in other languages. Although Component Pascal does not allow the definition of overloaded methods, overloaded methods may be called from Component Pascal code. All such language extensions may be turned off by a command line option.

As well as the compiler, the distribution contains a number of other utilities

  • The program CPMake which performs a minimal consistent compilation of a set of Component Pascal modules, respecting the module dependencies explicitly declared in the source files.
  • The program PeToCps (for the .NET version) which creates a gpcp symbol file from a nominated "foreign language" PE file. Such symbol files are used by gpcp to perform type-safe separate compilation of Component Pascal modules that import foreign language libraries.
  • The program J2CPS (for the JVM version) which creates gpcp symbol files from a nominated java package. Such symbol files are used by gpcp to perform type-safe separate compilation of Component Pascal modules that import foreign language libraries.
  • The program Browse produces a readable, hyperlinked representation of gpcp symbol files.
  • The program MakeIndex which creates an index for all the html files created by Browse in a directory.

Special Note

Almost all of the sources of the gpcp tools are written in Component Pascal. It is not possible to use gpcp until you have executable code of the tools. And you cannot build the executables from this source repository unless you already have a Component Pascal compiler. Most users should start by downloading a recent release distribution from the link above. The releases have documentation, usage information and example programs.

gpcp's People

Contributors

mguntli avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.