https://github.com/TheRealMichaelWang/cish
Go + Generics + Sum Types
https://github.com/TheRealMichaelWang/cish
programming-languages
Last synced: 3 days ago
JSON representation
Go + Generics + Sum Types
- Host: GitHub
- URL: https://github.com/TheRealMichaelWang/cish
- Owner: TheRealMichaelWang
- License: mit
- Created: 2021-08-25T01:17:27.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-20T03:46:25.000Z (over 1 year ago)
- Last Synced: 2024-11-07T14:42:07.515Z (5 months ago)
- Topics: programming-languages
- Language: C
- Homepage:
- Size: 1010 KB
- Stars: 35
- Watchers: 5
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-programming-languages - Cish - A minimal, performant, strongly-typed, and multi-paradigm programming language focused on being practical and pragmatic, yet powerful enough to create readable, performant and concise code for any problem. While Cish has as much to do with Forth as Javascript has with Java, it shares the same minimalist, performance oriented approach and philosophy. (Uncategorized / Uncategorized)
README
# Cish
## About
A minimal, performant, strongly-typed, and multi-paradigmn programming language focused on being practical and pragmatic, yet powerful enough to create readable, performant and concise code for any problem.## Features
* Super Performant
* Cish can be both interpreted and compiled.
* A strong, impeccable type system.
* Cish has actual strong typing, unlike c. Casts are made explicitly and it's not possible to have a binary operator have two different types for its operands.
* Type safe, runtime type-casting is supported when necessary.
* Powerful and expressive type arguments, not only for structs but for functions as well.
* Type arguments aren't constrained to be reference/allocation types like Java - they can also be primitives.
* Type parameters also support type requirements, somewhat like interfaces.
* Supports sum-types
* Clean error handling, unlike go. Requires succesful results to be unwrapped, providing a concise layer of error handling.
* Support for first class functions.
* First class functions are inbuilt in the syntax and overall design as well - there isn't a million ways you can define a function.
* Structured programming, with some OOP features like inheritance.
* The linking process is done automatically - there's no need for C-like forward declarations.
* While casting is done automatically from derived types to their super type, downcasting is not allowed.
* Interoperability with other C and **C#**.
* See [this related project](https://github.com/TheRealMichaelWang/superforthcsharp) for details.## Important Links
* [Documentation](https://github.com/TheRealMichaelWang/superforth/wiki)
* [Installation](https://github.com/TheRealMichaelWang/superforth/wiki/Installation)
* [CLI Usage](https://github.com/TheRealMichaelWang/superforth/wiki/Command-Line-Usage)
* [Examples](https://github.com/TheRealMichaelWang/superforth/tree/main/examples)
* [Release](https://github.com/TheRealMichaelWang/superforth/releases/tag/1.1)