https://github.com/abstractlang/abstract
The Abstract Programming Language is a general-purpose system programming language made to be easy to learn, read, write and share.
https://github.com/abstractlang/abstract
abstract compiler language
Last synced: 8 months ago
JSON representation
The Abstract Programming Language is a general-purpose system programming language made to be easy to learn, read, write and share.
- Host: GitHub
- URL: https://github.com/abstractlang/abstract
- Owner: abstractLang
- License: apache-2.0
- Created: 2024-10-03T02:18:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-16T19:03:26.000Z (12 months ago)
- Last Synced: 2025-06-16T20:20:41.284Z (12 months ago)
- Topics: abstract, compiler, language
- Language: C#
- Homepage: https://abstractlang.github.io/
- Size: 2.86 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Introduction
The Abstract Programming Language is a general-purpose system programming language
made to be easy to learn, read, write and share. \
The Abstract Development Environment is planned to be pretty rich, including systems
for build, debugging, unit testing and modularity.
## Abstract's Philosophy
The philosophy of a language is one of the most important points of its development.
It contains all the concepts that allows and justifies its existence.
Abstract uses these five concepts as its foundation:
> Control, Readability, Security and Portability
## The Abstract Development Environment
The Abstract Development Environment is made to give the user the maximum productivity
and efficiency possible as a developer. It is built around 4 components,
still in development:
### The Compiler:
The Abstract compiler is the foundation of the project. It is the main program that handles
the raw script files, process its syntax and semantics and control the other components to
end up with an optimized and easy to share executable program or library.
### The Linker:
The Abstract linker is a development tool that allow the programs and libraries to be compiled into
final machine or byte code in the most performative way. It is also used to reduce dead code from
libraries and merge the Abstract bytecode with any necessary assembly or machine code.
### The Plugins:
The Plugins are made to give freedom to the community to do whatever they want with their programs.
These plugins can be used to manipulate the process during compilation or extends the linker,
allowing a bigger diversity of compiling targets for different digital devices.
### The Package-Manager:
The Package Manager is made to allow users to build and share libraries to all purposes and compilation
targets.
# About Development
The Abstract Development System is still under development and should continue like this for a good time.
If you have some time and good knowledge, try to contribute! (it would make me really happy :3)
[//]: # (## Current Contributors:)
[//]: # (||||)
[//]: # (|:----------:|:----------:|:------|)
# External links
- [Abstract website](https://abstractlang.github.io/abstract/)
- [Abstract documentation](https://abstractlang.github.io/abstract/)
- [Abstract development blogs](https://abstractlang.github.io/abstract/)