Giter Site home page Giter Site logo

package-example's Introduction

Covariant Script Programming Language: The Interpreter


Welcome to the Covariant Script programming language!
Covariant Script is an open source, cross-platform programming language.
This project is an officially maintained Covariant Script interpreter.

Switch language

Features

  • Cross-platform, supporting most mainstream Operating Systems
    • Compatible with legacy compilers -- written in C++ 14
    • Apple macOS: Universal binary with x86_64 and arm64
    • Linux and Unix: x86, ARM, MIPS, LoongArch
    • Microsoft Windows: x86
  • Powerful and bloat-free extension system
    • C/C++ Native Interface(CNI) System: translate invoking from both C/C++ and Covariant Script
    • Interpreter Bootstrap: A portable way to access the Covariant Script Runtime from C++
    • CNI Composer Macro: Combined the extension system and CNI system organically
    • CFFI Support: Directly calling functions from shared library written in C
  • Self-developed efficient compilation system
    • Dependency-free and efficient compiler front-end
    • Unicode support optimized for Chinese
    • Support compile-time optimization
    • Exportable compilation results
  • High-performance runtime environment
    • Stackful asymmetric coroutine
    • Hotspot optimization algorithm
    • Efficient memory management system
    • Reference count garbage collection system

Documents

Please visit Covariant Script Organization README

Installation

  • [Recommend] Download installation package from covscript.org.cn
  • Download the precompiled executable on the Latest Release
  • Directly compile source code with CMake toolchain

Run

Basic command

cs [options...] <FILE|STDIN> [arguments...]
cs [options...]

When replace FILE with STDIN, interpreter will directly reads inputs from standard input stream.

Options

Interpreter
Option Mnemonic Function
--compile-only -c Only compile
--dump-ast -d Export abstract syntax tree
--dependency -r Export module dependency
--csym <FILE> -g <FILE> Read cSYM from file
Interpreter REPL
Option Mnemonic Function
--silent -s Close the command prompt
--args <...> -a <...> Set the covscript arguments

Note that everything you set after option --args or its mnemonic -a will be regarded as arguments.

Common
Option Mnemonic Function
--no-optimize -o Disable optimizer
--help -h Show help infomation
--version -v Show version infomation
--wait-before-exit -w Wait before process exit
--stack-resize <SIZE> -S <SIZE> Reset the size of runtime stack
--log-path <PATH> -l <PATH> Set the log path
--import-path <PATH> -i <PATH> Set the import path

The default stack size is 1000. When the stack size is set larger than the default value, the stack size of the coroutine will be dynamically adjusted to one tenth of the set size; when the stack size is set smaller than the default value, the stack size of the coroutine will be will remain at 100.

Note that if you do not set the log path, it will be directly output to the standard output stream.

Debugger

cs_dbg [options...] <FILE>

Options

Option Mnemonic Function
--help -h Show help infomation
--version -v Show version infomation
--silent -s Close the command prompt
--wait-before-exit -w Wait before process exit
--csym <FILE> -g <FILE> Read cSYM from file
--stack-resize <SIZE> -S <SIZE> Reset the size of runtime stack
--log-path <PATH> -l <PATH> Set the log path
--import-path <PATH> -i <PATH> Set the import path

The stack size policy is the same as for the interpreter.

Note that if you do not set the log path, it will be printed to stdout.

Examples

The covscript-example repository contains several example programs written by Covariant Script.

Copyright

The author of the Covariant Script Programming Language is @mikecovlee, licensed under Apache 2.0
Copyright © 2017-2023 Michael Lee(李登淳)
This software is registered with the National Copyright Administration of the People's Republic of China(Registration Number: 2020SR0408026) and is protected by the Copyright Law of the People's Republic of China.

Thanks

Sichuan University, KDDE Lab (Prof. Lei Duan), freeCodeCamp Chengdu Community

@imkiva, @ice1000, @MouriNaruto, Weicheng Shi

package-example's People

Contributors

mikecovlee avatar

Watchers

 avatar

Forkers

jin1xiao3long2

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.