Coder Social home page Coder Social logo

simplylinn / hw Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lunasorcery/hw

0.0 2.0 0.0 10 KB

HW: a modern, open-source, typeless, turing-incomplete programming language.

License: Do What The F*ck You Want To Public License

Makefile 66.09% C 33.91%

hw's Introduction

The HW Programming Language

Build Status

About HW

HW is a modern, open-source, turing-incomplete programming language, designed for the 21st century.

Designed for Rapid Development

HW is a typeless, interpreted language, so you'll never have to worry about those pesky compile times slowing down your development cycle.

Secure

HW is turing-incomplete by nature, so you can safely install it on your embedded systems without risk of attackers using it to execute unsanctioned code.

Beginner-friendly

With its laissez-faire approach to syntax strictness, you don't have to worry about syntax errors at all. You'll be up and running in no time!

Globally Accessible

International accessibility is important, and we're delighted to say that in addition to plain ASCII, HW also supports source code encoded in UTF-8, UTF-16, UTF-32, SHIFT-JIS, and numerous others.

Using HW

Source code

HW source files conventionally use the .hw file extension, though the interpreter will happily accept files with other extensions.

Running a HW program

To run a HW program, invoke the interpreter hw from a command-line, and provide the source files as command-line arguments. For example:

$ hw examples/hello-world.hw

If you provide multiple source files to the HW interpreter, they will be executed as if the files were concatenated into a single file. If you provide a path to a file that doesn't exist, the interpreter will treat it as an empty file instead of raising an error. Similarly, if you provide no paths, the interpreter will assume you intended to pass an empty file.

Syntax

A statement in HW is considered to be any number of consecutive bytes, terminated by an end-of-file. All statements in HW will elicit the same execution from the interpreter - hence the turing-incompleteness.

Quine

Despite being turing-incomplete, it is possible to implement a quine in HW. Source code for this is provided in the examples/ folder.

Building the interpreter

Building on *nix

Building the HW interpreter on *nix systems couldn't be simpler! Drop a shell, cd into the source repository, and execute the following commands:

make
make install

(It is assumed that you know how to drop a shell, and that you have a C compiler installed and accessible via CC)

Building on Windows

Windows support is Coming Soon™.

Contributing

HW does not yet have an IRC support network, nor does it have an official Discord or Slack. We're thinking about it.

Changes to the interpreter source code are unlikely to be accepted. Improvements to the build scripts and documentation will be considered with more leniency.

Brand Guidelines

When referring to the language, it should be capitalised 'HW'. When referring to the interpreter, it should be lower-case 'hw'. All other forms, either variations on capitalisation or using homoglyphs, are unacceptable and may incur legal action.

License

HW is distributed under the terms of the WTFPL. See LICENSE for more details.

hw's People

Contributors

lunasorcery avatar

Watchers

 avatar  avatar

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.