There are no reviews yet. Be the first to send feedback to the community and the maintainers!
.oooo. .o8 .o88o. .dP""Y88b "888 888 `" .oooo. .oooo.o ooo. .oo. .oo. ]8P' 888oooo. o888oo `P )88b d88( "8 `888P"Y88bP"Y88b .d8P' d88' `88b 888 .oP"888 `"Y88b. 888 888 888 .dP' 888 888 888 d8( 888 o. )88b 888 888 888 .oP .o 888 888 888 `Y888""8o 8""888P' o888o o888o o888o 8888888888 `Y8bod8P' o888o The only true brainfuck assembler. Produces small and efficient brainfuck code based on instruction choice. With Lua preprocessor, labels, precise floating point, effective adresses, conditional branching, signed arithmetics, dynamic memory allocation and all the features you'd expect from a normal assembly, it's ready for use. Lastest changes include stack-based offsets and move semantics. Why not check it out? etc/asmbf.pdf - WIP, UP TO DATE ASM2BF MANUAL AND DOCUMENTATION. https://esolangs.org/wiki/Asm2bf - a brief showcase of select asm2bf's capabilities. examples/ - who doesn't love learning by examples? test/ - unit tests for the entire toolchain. a functional programming language interpreter in 150 lines of asm2bf: https://github.com/kspalaiologos/asmbf/blob/master/examples/sk.asm asm2bf was used to create a JSON formatter webservice: https://github.com/kspalaiologos/JSONFormatter/blob/master/jsonformatter.asm also, a subleq interpreter approach has been taken: https://github.com/kspalaiologos/SqEMU/blob/master/dev-sqemu.s an optimized 8ball: https://github.com/kspalaiologos/asmbf/blob/master/examples/8ball.asm ----------------------------------------- What can asm2bf do? ------------------------------------------ First and foremost, asm2bf is a language which is very portable. It can compile to special asm2bf bytecode (which can be retargetted to virtually any platform in a few hours). It also outputs _pure_ brainfuck, which is executable by any brainfuck interpreter, which means, that asm2bf is able to benefit from countless brainfuck-to-any compilers. Secondly, asm2bf is a both a fairly low level language and a high level language. It abstracts the concepts of effective adresses, powerful preprocessors, advanced control flow, floating point numbers, signed arithmetic, etc..., into a robust toolkit for developing brainfuck, and, subsequently, any language which can be a target of compilation from brainfuck or asm2bf bytecode. Third, asm2bf in itself can be made to produce really small programs (check 8ball.asm in examples), but it can also be used to create very complicated programs (check sk.asm). Because it provides an acceptable level of abstraction to the programmer, it's feasible to write your proofs of concepts in asm2bf and later optimize them to be as fast as possible using existing resources and community-created guides, or by reading the code and experimenting yourself. asm2bf is still, after multiple years, work in progress. It gains new features rather often. So far, asm2bf has around 160 instructions that you can use in your programs and around 300 lines of Lua code providing essential batteries for metaprogramming in asm2bf. It's a hobby project of mine, to which a few people decided to contribute, but I'll try to maintain it for as long as possible. asm2bf is capable of being the foundation of any more or less complex program. It has been used to create an operating system (which boots and operates mainly thanks to pure brainfuck! This is possible because the brainfuck code can directly access the memory and set up a custom interrupt handler, which executes provided assembled machine code when the timer intterupt fires, which later modifies the interpreter to add special instructions to it). asm2bf has also been used to create a small (~150 line) functional programming language interpreter, which compiles to only around 20 kilobytes of brainfuck. It was also used to create tiny brainfuck programs, as well as proofs of concepts for web development in brainfuck. Finally, I, the author, am working on an exhaustive manual on _all_ of asm2bf, for which the progress you can see in etc/asmbf.pdf ------------------------------------------ Get a taste of it! ------------------------------------------ ; Sierpinski triangle fractal viewer @loop1 mov r2, 0 @loop2 mov r3, r1 band r3, r2 cge r3, 1 mov r3, .* cmov r3, 32 out r3 clt r2, 63 cadd r2, 1 cjn %loop2 out 10 clt r1, 63 cadd r1, 1 cjn %loop1 --------------------------------------- Installation Instruction --------------------------------------- 1. Pull the repository from github: `git clone https://github.com/kspalaiologos/asmbf' 2. Run the configure script and build asm2bf: `./configure --with-target=release && make all && sudo make install` -------------------------------------- State-of-art Documentation -------------------------------------- There is the esolang wiki article which you can check out. Feel free to join the discord server for asm2bf, where you can discuss the project or ask me about learning asm2bf: https://discord.gg/m4Wcenn. You can also check out the manual (etc/asmbf.pdf); although up to date, it's not complete. ---------------------------------------------- Dependencies --------------------------------------------- Term::ReadKey, File::Basename, Term::ANSIColor @ cpan gcc, bison, flex, make, autotools, ncurses --------------------------------------------- Windows Build --------------------------------------------- To _configure_ this project on Windows, you need either Cygwin or MinGW (msys). The build should look exactly the same like the Linux one. Note that building the project on Windows and targets other than `release' and `auto' is unsupported.
bzip3
A better and stronger spiritual successor to BZip2.malbolge-lisp
A lightweight (350MB) Lisp interpreter in Malbolge Unshackled, often dubbed the hardest turing complete programming language.kamilalisp
A functional, flexible and concise Lisp.C-Learning-Resources
Resources for learning C that are the best in my opinion.qbdiff
building and applying patches to binary filessdlgames
A collection of small games made using SDL and C/++.tinyz80
A minimal Z80 implementation.A-Programming-Language
An effort to transcribe Ken Iverson's "A Programming Language" book to LaTeX.blc-mb
Binary Lambda Calculus evaluation engine written in Malbolge.tiny6502
a small (~140 line) and portable 6502 emulator demo.typeracer
A ncurses-powered typing gamemodern-rzip
A backup suite. Supports FLZMA2, bzip3, LZ4, Zstandard, LSH i-node ordering deduplicating archiver, long range deduplication, encryption and recovery recordsMaja
A slick numerics-oriented Mathematical library for Javatau
a reasonably fast syntax highlighterwritings
a single place to collectively store every bit of my writings i deem at least remotely valuable.lc-apl
Journey to the Center of the Lambda Calculusasm2ws
alpha-grade whitespace toolchainlz4huf
An attempt to marry a fast Lempel-Ziv codec (LZ4) with a fast entropy coder (Huff0).ski
a 666-byte, public domain SKI combinator calculus evaluator in C, minsky machines and other stuffmblzp
A lightweight (8MB) implementation of the McIlroy-Tamayo Lempel-Ziv variation in Malbolge Unshackled.mri
minecraft region interchange - compressing minecraft savefiles with bzip3.compression
playing with small decompressors and good ratios :)adler32-sse2
Adler32 implementation used in Alpha64 at ~13GiB/s in a 1 kilobyte binary.ski-windows
a 976-byte, GUI SKI calculus evaluator written in x86 assembly for windowsnonalphanumeric-c
A compiler targetting a subset of C which doesn't use letters nor numbers.cosmopolitan-sk
SK calculus reducer in as many programming languages as possible.elfdude
a small & primitive elf32 packer.rezip
Turn any archive format supported by libarchive into an uncompressed zip file for better archiving purposes.cursed-asm
Use AT&T syntax on even lines and Intel syntax on odd linesLambdaCalculus
Dead simple implementation of Lambda Calculus.dirac
Delightfully Intricate Reasonably Amazing Calculatoraoc2023
Advent Of Code 2023 in APL, Haskell and C.recreational
My submissions for Code guessing, Code golf and other recreational programming things.b2all
Collection of brainfuck-to-anything compilers in brainfuck.dev-urandom
An assortment of random programs that serve random purposes.MacroLogger
Simple C logging library utilizing only C89 preprocessor and standard library. It's possible to turn on ANSI colors and GNU preprocessor extensions (and they are by default)).esofun
esofun is an array, imperative, procedural and functional language mix.euler-apl
project euler solved in APLapl-misc-math
Miscellaneous mathematical and numerical utilities in APL.x86lisp
2158 byte Lisp interpreter for Windows.cask
An alternative way to package Java applications.e8e9
A command-line wrapper for Shelwien's e8e9 algorithm.dx
Domain eXtensions for Dyalog APLelf-infection
Source code for https://palaiologos.rocks/essays/posts/elf-infection/snakes
A KoTH programming game host for the Esolangs Discord server.apl-logic
Logic gate system emulation in APL.apio
a very good and not bad c++ utility library.constant-overhead
Measuring constant overhead of various programming languages.yarg
Yet another UNIX-like argument parser for C. CC0-licensed.Proton
Proton is toolkit for desktop app creation in ActionScript3dyalog-hs
Dyalog APL Competition solved with Haskell.yaspell
Yet Another Spellchecker. WIP.sublime-v2
sublime: an asm2bf execution bot written in typescriptrust-jni-template
A template for developing JNI libraries using the Rust programming languageeuler
Project Euler solved in Brainfuck.kspalaiologos
Github description, I guess.Chess.fl
Chess.fl is simple Flash library for managing chessboards.minits
a crude testing platform used by malbolgelisp ca. August of 2021, preserved for historical reasons.TinyURL-Shortener
TinyURL frontend script written in Bash. Requires cURL to be installed on target machine.dotfiles
A stripped down version of my dotfiles hopefully suitable for use by others.ILoCore-Release
Binaries of ILoCore Minecraft 1.14 plugin.Chemal
The chemical balancercode-guessing-backend
a (yet incomplete), fully automated code guessing automation platform.namechanger
simple bash script to replace one pattern with another for each of your github repositoriessdlmine
A SDL2 minesweeper in 1000 lines of code.sdlreversi
A reversi/othello game under 500 lines of C++ code.MANIAC-2
Replica of the first computer to beat human in a chess-like game.ctlsh
A C port of the Trend Micro Locality Sensitive Hashing library.ppmdj1
A Github mirror of Dymitry Shkarin's PPMd var. Jxpar
an error/erasure code system guarding data integritykcrypt2
a proof-of-concept for cryptographic systems based on polynomial reconstruction.Love Open Source and this site? Check out how you can help us