C is a general-purpose high-level programming language suitable for low-level programming, in other words: a system programming language. It stands out in terms of portability, interoperability, efficiency, and stability.
Rosetta Code is a programming chrestomathy site. The idea is to present solutions to the same task in as many different languages as possible, to demonstrate how languages are similar and different, and to aid a person with a grounding in one approach to a problem in learning another. Rosetta Code currently has 1,310 tasks, 380 draft tasks, and is aware of 963 languages, though we do not (and cannot) have solutions to every task in every language.
Every vintage Apple Mac enthusiast knows the importance of having a stockpile of key software to call upon when refurbishing or maintaining their collection. Well, here’s an off-the-shelf solution that’ll answer the prayers of many of us. This is a treasure trove of essential utilities that every Classic Mac OS user absolutely needs to have.
Everything is packed into a single three hundred meg .sit archive to make it easy to grab. Download it, unpack it, and there you have it.
Piet is a programming language in which programs look like abstract paintings. The language is named after Piet Mondrian, who pioneered the field of geometric abstract art. I would have liked to call the language Mondrian, but someone beat me to it with a rather mundane-looking scripting language.
I wrote the Piet specification a long time ago, and the language has taken on a bit of a life of its own, with a small community of coders writing Piet programs, interpreters, IDEs, and even compilers. I have not written any "authoritative" interpreter, and the different ones available sometimes interpret the specification slightly differently.
Piet uses a stack for storage of all data values. Data values exist only as integers, though they may be read in or printed as Unicode character values with appropriate commands. The stack is notionally infinitely deep, but implementations may elect to provide a finite maximum stack size. If a finite stack overflows, it should be treated as a runtime error, and handling this will be implementation dependent.
XAMPP is a completely free, easy to install Apache distribution containing MariaDB, PHP, and Perl. The XAMPP open source package has been set up to be incredibly easy to install and to use.
The goal of XAMPP is to build an easy to install distribution for developers to get into the world of Apache. To make it convenient for developers, XAMPP is configured with all features turned on. In the case of commercial use please take a look at the product licenses, from the XAMPP point of view commercial use is also free. There are currently distributions for Windows, Linux, and OS X.
On 1976 at the HomeBrew Computer Club (HBCC), there was a lot of whining about Bill Gates charging $150 for his Basic interpreter. Dennis Allison responded by printing a "Build Your Own [tiny] Basic" article, so I asked if anybody would buy it if it cost only $5. There seemed to be some affirmation, so I wrote my interpreter. Others jumped on the same article, and I wasn't the first done, but I wanted to be paid for my efforts. As far as I know, nobody at HBCC bought it, but I sent a freebie to Byte magazine and they printed a 1-inch announcement. The next month my mailbox was full of orders, every one with $5. I didn't get rich off it, but it did pay a lot of my expenses at grad school.
This is an archive of as many versions of TinyBasic, the documentation, the user and experimenter kits as Tom Pittman could find.
Tiny BASIC in Python (tbp) is an implementation of the Tiny BASIC language first proposed by Dennis Allison in response to Bill Gate's "An Open Letter to Hobbyists." In 1976, Dr. Tom Pittman developed his version of Tiny BASIC, which was one of many developed at that time. Where the original Tiny BASIC fit into 4K of memory, tbp is, ahem, a LOT larger, but does have a full debugger, linter, and runs on macOS, Linux, and Windows. So, pull up your bell bottom jeans, slap an 8-track tape into the stereo, and see what it was like for your grandparents when they programmed computers. Let's get groovy with the good vibes!
Supports all 12 statements and the two functions of the original, including USR. Supports all 26 variables, A - Z. Supports loading and saving programs to/from disk. Has a built-in linter and debugger.
The project notes are fascinating: https://john-robbins.github.io/tbp/project-notes
This site is holding a number of web pages for groups producing open standards. Character sets, formal specs for a number of languages, and user interface design.
LibreLingo's mission is to create a modern language-learning platform that is owned by the community of its users. All software is licensed under AGPLv3, which guarantees the freedom to run, study, share, and modify the software. Course authors are encouraged to release their courses with free licenses.
LibreLingo offers an official web app, which is very lightweight and written in Javascript using Svelte framework and pouchDB by the way, to try out LibreLingo courses interactively right in your browser, no installation required!
A sub-1KB, self-hosting, native code Forth without compromise
At the core of paraforth is a very small assembly program - just an association list of names to subroutines, and an input loop for invoking them. By pre-populating the list with just enough functionality to build a macro assembler, a self-extensible language kernel is born.
This project is a long-running exercise in building the smallest self-sufficient Forth possible, without ANY sacrifices in speed or usability. No inputting pre-assembled machine code at runtime, and no cobbling together logic operations from NAND.
The entire language, save for just 15 words and 756 bytes of machine code, is implemented in itself - legibly - and builds in place on startup. Additionally, support for full bootstrapping coming soon.
LibreTexts is the adaptable, user-friendly open education resource platform that educators trust for creating, customizing, and sharing accessible, interactive textbooks, adaptive homework, and ancillary materials. We collaborate with individuals and organizations to champion open education initiatives, support institutional publishing programs, drive curriculum development projects, and more.
LibreTexts is the largest centralized open education project and platform online. Founded in 2008 at the University of California, Davis as the ChemWiki, the LibreTexts mission is to unite students, faculty and scholars in a cooperative effort to develop an easy-to-use online platform for the construction, customization, and dissemination of open educational resources (OER) to reduce the burdens of unreasonable textbook costs to our students and society.
We found other Neovim configurations either being powerful out of the box but hard to customize, or easy to customize but minimal out of the box functionality. AstroNvim aims to find the middle ground with a great out of the box experience while empowering the user to make tweaks where they want. Getting started is super easy! Head over to the Getting Started Guide which will step you through setting up the user template. From there you can start playing around with AstroNvim, but be sure to look through the rest of the documentation to see how to customize it further. Out of the box AstroNvim doesn't provide direct support for any one language, but provides a base for setting up any language easily. AstroCommunity is a community repository for sharing configuration snippets such as language support. AstroCommunity has >40 language packs that can be added to your configuration to get state of the art language support.
This is a plugin for the Flipper Zero that ports pForth.
Once started the plugin will add a forth command to the CLI that can be used to call up a basic forth shell.
Calling the forth command with a file path as parameter will cause that file to be executed as a forth script. Examples are provided under forth_scripts.
To use one of the provided scripts (for example notif_success.fth), copy it to your SD card. Then run the plugin and execute forth /ext/<path to your file> (for example forth /ext/notif_success.fth) on the CLI.
The Forth Interest Group (FIG) was a world-wide, non-profit organization for education in and the promotion of the Forth computer language. This website offers an on-line literature database, programming tools, reference works, public-domain and experimental implementations of the Forth programming language for various platforms, technical conferences, and connections to other Forth resources.
Although FIG as an organization has dissolved, this website will continue to reflect the on-going interest in Forth.
A simple interactive BASIC interpreter written in Python 3. It is based heavily on material in the excellent book Writing Interpreters and Compilers for the Raspberry Pi Using Python by Anthony J. Dos Reis. However, I have had to adapt the Python interpreter presented in the book, both to work with the BASIC programming language and to produce an interactive command line interface. The interpreter therefore adopts the key techniques for interpreter and compiler writing, the use of a lexical analysis stage followed by a recursive descent parser which implements the context free grammar representing the target programming language.
The interpreter is a homage to the home computers of the early 1980s, and when executed, presents an interactive prompt ('>') typical of such a home computer. Commands to run, list, save and load BASIC programs can be entered at the prompt as well as program statements themselves.
The BASIC dialect that has been implemented is slightly simplified, and naturally avoids machine specific instructions, such as those concerned with sound and graphics for example.
miniforth is a real mode FORTH that fits in an MBR boot sector. The following standard words are available:
+ - ! @ c! c@ dup drop swap emit u. >r r> [ ] : ; load
Additionally, there is one non-standard word. s: ( buf -- buf+len )
will copy the rest of the current input buffer to buf, and terminate it with a null byte. The address of said null byte will be pushed onto the stack. This is designed for saving the code being ran to later put it in a disk block, when no block editor is available yet.
The dictionary is case-sensitive. If a word is not found, it is converted into a number with no error checking. For example, g results in the decimal 16, extending the 0123456789abcdef of hexadecimal. On boot, the number base is set to hexadecimal.
Backspace works, but doesn't erase the input with spaces, so until you write something else, the screen will look a bit weird.
See the blogpost, Fitting a FORTH in 512 bytes, for my motivation for writing this and the details of the code.
A directory of version managers - things that make it easier to run multiple versions of a language (like Ruby or Swift) on the same machine separately.
A port of Google's language detection library from Java to Python.
PolyGlot is a tool that is designed to help in the design, creation, and publication of constructed languages. Lexicon builder, grammar constructor, search, orthography, parts of speech, document generation, custom fonts, logographics.