Shang -- A High Level Programming Language
Overview of features
Numerical Computation
The Plot Project
License and Disclaimer
Shang is a feature-rich high-level programming language and computing environment. It unifies the essences of many diverse and perhaps conflicting programming language concepts and paradigms, such as procedural, functional programming, and object-oriented programming, etc, and offers many features including first class parameterizd functions, partial substitution, domains, conditional classes, and automatons. Shang combines the strengths of both dynamic typing and static typing.

The goal of design is to make the language very easy to read and learn, and the syntax as intuitive, concise, and clean as possible. Unnecessary keywords, counter-intuitive and complicated syntax rules, and any other kind of inelegant kludges are never introduced into the design.

Shang supports object oriented programming with a number of annovative features. Access to class member attributes can be controlled and member attributes can have domains which protect the integrity of member data and make class interfaces more expressive and readable, and often enough to completely specify the class.

Shang is meant to be a gereral-purpose programming language. Yet it is equipped with built-in features for efficiently handling scientific computations, many of which are not found in other popular numerical softwares, such as sets, matrices of infinite size integers and arbitrary precision floating point numbers, internal support for matrices of special patterns such as banded matrices (besides general sparse matrices), handle parameterized functions, etc.

For executing function calls and large loops the Shang interpreter is very fast, compared to other interpreted programming languages (except when the so called Just-In-Time compiler is used; in which case the program is running in compiled mode). This is achieved before any substantial effort is made on optimization. Our next goal is to bring the interpreter close to the speed of compiled languages.

Shang interpreter runs on all versions of Windows operating system, Linux, and FreeBSD, and needs no installation/setup.

The Shang language interpreter and its software package are freely available. It will develop into an open source project in the future.

Latest News

  • January 15, 2012
  • Version with the new worksheet interface is now available. Other updates include OOP design change, improved plot, new accompanying scripts, documentation, and bug fixes.
  • January 15, 2011
  • Minor bug fix (Windows download only)
  • December 22, 2009 --- Version 1.1
  • For both Windows and Unix (runs on Linux and FreeBSD).
  • Aug 18, 2009 --- Version 1.0
  • Documentation for the language and the plot project updated. Numerous bugs fixed. Unix and open source version coming soon.
  • April 05, 2009 --- Version 0.9
  • many new features have been added --- including integers of infiite size, arbitrary precision floating point arithmetic, and more efficient internal support for matrices of special structures, improved, more secure support for OOP, etc.
  • March 21, 2008 -- Version 0.5 done

Copyright (c) 2009 Li Xiaorang
Comments and questions regarding this web site can be sent to (lixiaorang@trentu.ca)
Last update Tue Dec 22 11:43:23 EDT 2009