All Projects → Whiley → Whileycompiler

Whiley / Whileycompiler

Licence: apache-2.0
The Whiley Compiler (WyC)

Programming Languages

java
68154 projects - #9 most used programming language
language
365 projects

Projects that are alternatives of or similar to Whileycompiler

Flint
The Flint Programming Language for Smart Contracts
Stars: ✭ 228 (+25.97%)
Mutual labels:  compiler, verification
Potigol
Linguagem Potigol - Linguagem de programação funcional moderna para iniciantes - A Functional Programming Language for Beginners
Stars: ✭ 179 (-1.1%)
Mutual labels:  compiler
Poprc
A Compiler for the Popr Language
Stars: ✭ 170 (-6.08%)
Mutual labels:  compiler
Play with llvm
A book about LLVM & Clang(中文开源书:玩转 LLVM)
Stars: ✭ 175 (-3.31%)
Mutual labels:  compiler
Corewar
A reproduction of the Core War game. Assembly compiler, Virtual Machine and GUI.
Stars: ✭ 173 (-4.42%)
Mutual labels:  compiler
Md5 File
return an md5sum of a given file
Stars: ✭ 176 (-2.76%)
Mutual labels:  verification
Awesome Machine Learning In Compilers
Must read research papers and links to tools and datasets that are related to using machine learning for compilers and systems optimisation
Stars: ✭ 168 (-7.18%)
Mutual labels:  compiler
Snapdragon
snapdragon is an extremely pluggable, powerful and easy-to-use parser-renderer factory.
Stars: ✭ 180 (-0.55%)
Mutual labels:  compiler
Go.vm
A simple virtual machine - compiler & interpreter - written in golang
Stars: ✭ 178 (-1.66%)
Mutual labels:  compiler
Laravel2step
Laravel 2-Step verification is a package to add 2-Step user authentication to any Laravel project easily. It is configurable and customizable. It uses notifications to send the user an email with a 4-digit verification code. Laravel 2-Step Authentication Verification for Laravel. Can be used in out the box with Laravel's authentication scaffolding or integrated into other projects.
Stars: ✭ 175 (-3.31%)
Mutual labels:  verification
Inmemoryjavacompiler
Utility class to compile java source code in memory
Stars: ✭ 174 (-3.87%)
Mutual labels:  compiler
Lexical syntax analysis
编译原理词法分析器&语法分析器LR(1)实现 C++
Stars: ✭ 173 (-4.42%)
Mutual labels:  compiler
Wag
WebAssembly compiler implemented in Go
Stars: ✭ 177 (-2.21%)
Mutual labels:  compiler
Xl
A minimalist, general-purpose programming language based on meta-programming and parse tree rewrites
Stars: ✭ 171 (-5.52%)
Mutual labels:  compiler
Rubyspeed
Compile ruby functions to C
Stars: ✭ 180 (-0.55%)
Mutual labels:  compiler
Redacted Compiler Plugin
A Kotlin compiler plugin that generates redacted toString() implementations.
Stars: ✭ 168 (-7.18%)
Mutual labels:  compiler
Antiddos System
🛡️⚔️ Protect your web app from DDOS attack or the Dead Ping + CAPTCHA VERIFICATION in one line!
Stars: ✭ 173 (-4.42%)
Mutual labels:  verification
Command Block Assembly
Compile high-level code into Minecraft commands
Stars: ✭ 175 (-3.31%)
Mutual labels:  compiler
Varjo
Lisp to GLSL Language Translator
Stars: ✭ 181 (+0%)
Mutual labels:  compiler
Llvm Guide Zh
User Guides For those new to the LLVM system.(LLVM系统的新用户指南,中文翻译版)
Stars: ✭ 180 (-0.55%)
Mutual labels:  compiler

\ \ / / |__ () | ___ _ _ ___ _ __ __ _ \ \ /\ / /| ' | | |/ _ \ | | | / _ | '/ ` | \ V V / | | | | | | __/ || || () | | | (| | _/_/ || |||_|_|_, ()_/|| _, | |_/ |___/

====================================================================== Contents

  1. Introduction

  2. Installation

  3. Building from Source

  4. Making a Contribution

======================================================================

  1. Introduction ======================================================================

Whiley is a programming language particularly suited to safety-critical systems. It is a hybrid object-oriented and functional programming language which employs extended static checking to eliminate errors at compile time, including divide-by-zero, array out-of-bounds and null dereference errors.

Whiley compiles to the Java Virtual Machine and is fully inter-operable with existing Java applications. Whiley will operate on any system that can run Java including Windows, Mac OS and Linux. Whiley is released under the New BSD License --- see the LICENSE file for more on this.

To find out more, visit http://whiley.org

====================================================================== 2. Installation

There are several ways to get started with Whiley:

  1. You can run it directly in your web browser.

  2. Or, you can download and setup the Whiley Development Kit.

The Eclipse plugin is the easiest way to get started with Whiley (see instructions below). If you don't use Eclipse, another simple option is to download and run the executable Jar. Finally, developers may like to download the Whiley Development Kit (WDK), which includes the source code for the compiler/runtime and various scripts to simplify compiling and running Whiley programs from the command-line.

2.1 Whiley Labs

To run Whiley in your web-browser, goto http://whileylabs.com

2.2 Whiley Development Kit (WDK)

To install the Whiley Development Kit, first download it from http://whiley.org/downloads. Then, unpack the tarball into an appropriate directory (as you've probably already done). You then need to make sure that PATH environment variable points to the bin/ directory, where several scripts are provided for running Whiley. (don't worry if you don't know what the PATH is, as you can instead run the jar directly --- see below).

With the PATH setup correctly, you should be able to run the wyjc command to compile Whiley programs as follows:

% cd examples % wy compile hello-world.whiley

At this point, you can run the program using the whiley command:

% wy run hello-world Hello World

============================================================================ 3. Building from Source

The compiler for Whiley shipped with the "Whiley Development Kit" is really a compiler framework called the "Whiley Compiler Collection". This is made up of a number of plugins, of which the "WhileyCompiler" is perhaps the most important. This is responsible for compiling Whiley files into the Whiley Intermediate Language (WyIL). Additional plugins (e.g. the "Whiley2JavaCompiler") are responsible for compiling WyIL files for various targets (e.g. JVM bytecode).

As an example, you can build the WhileyCompiler plugin from scratch by cloning this repository. You can build the compiler by running 'ant' at the top level (you need to have Apache Ant installed to do this). At this point, you need to install the new plugin into your distribution of the Whiley Development Kit (see above) in order for it to be recognised by the "wy" command (you can do this by simply copying wyc-vX.Y.Z.jar into the lib/ directory).

Setting up the WhileyCompiler under an IDE should be straightforward, provided it supports Maven. This is because the necessary dependencies for the WhileyCompiler (e.g. other components of the Whiley Compiler Collection) are hosted on Maven central.

============================================================================ 4. Making a Contribution

When making a contribution to the Whiley project, you will need to first sign-off the developers certificate of origin. Please see the CONTRIBUTORS file for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].