NesC is a programming language similar to C with extensions for component-oriented programming on small platforms.
https://github.com/tinyos/nesc
https://github.com/tinyos/nesc
GitHub
GitHub - tinyos/nesc: Master nesc repository
Master nesc repository. Contribute to tinyos/nesc development by creating an account on GitHub.
TinyOS is an operating system for "smart dust" devices. It is written in NesC and provides component-based approach for applications programming. The kernel is linked statically with the developed application's components.
The system actively uses the concept of events and fits well for I/O-intensive areas.
Unfortunately, computing tasks cannot be preempted and run untill their end, so the programmer is responsible for task decomposition and chaining of its parts, just like in oberon systems.
https://github.com/tinyos/tinyos-main
The system actively uses the concept of events and fits well for I/O-intensive areas.
Unfortunately, computing tasks cannot be preempted and run untill their end, so the programmer is responsible for task decomposition and chaining of its parts, just like in oberon systems.
https://github.com/tinyos/tinyos-main
GitHub
GitHub - tinyos/tinyos-main: Main development repository for TinyOS (an OS for embedded, wireless devices).
Main development repository for TinyOS (an OS for embedded, wireless devices). - tinyos/tinyos-main
An old but still interesting book — Symbolic Processing in Pascal.
This is difficult to categorize the book, it contains different topics and looks little bit unstructured but the content pleases anyway.
It starts from simple projects on translation and interpretation of propositional logic formulas. The first chapter results to a program that computes truth tables for logic formulas entered by the user. Next, the author describes how to program an interpreter for a model imperative language. The following chapter introduces higher order functions and their implementation in programming languages. The author explains how recursion and continuations can be implemented. He shows a design of a simple functional (and concatenative) language called Joy.
Following chapters focus on internals of a theorem prover for monadic logic, a database language and a verifier for Petri nets.
And all this stuff is written in Pascal!
https://www.latrobe.edu.au/__data/assets/file/0014/240305/Symbolic-Processing-in-Pascal.zip
This is difficult to categorize the book, it contains different topics and looks little bit unstructured but the content pleases anyway.
It starts from simple projects on translation and interpretation of propositional logic formulas. The first chapter results to a program that computes truth tables for logic formulas entered by the user. Next, the author describes how to program an interpreter for a model imperative language. The following chapter introduces higher order functions and their implementation in programming languages. The author explains how recursion and continuations can be implemented. He shows a design of a simple functional (and concatenative) language called Joy.
Following chapters focus on internals of a theorem prover for monadic logic, a database language and a verifier for Petri nets.
And all this stuff is written in Pascal!
https://www.latrobe.edu.au/__data/assets/file/0014/240305/Symbolic-Processing-in-Pascal.zip
Riot OS is a tiny operating system for small IoT-devices. You don't need any hardware to start development with Riot because it can work in hosted mode with HAL implemented on top of the Linux system calls.
The networking subsystem embedded to Riot kernel supports those trendy IoT stacks, protocols and data formats you've exactly heard about (IPv6, 6LoWPAN, RPL, Constrained Application Protocol and CBOR).
The system tries to be very compact and implements a part of the POSIX standard.
https://github.com/RIOT-OS/RIOT
The networking subsystem embedded to Riot kernel supports those trendy IoT stacks, protocols and data formats you've exactly heard about (IPv6, 6LoWPAN, RPL, Constrained Application Protocol and CBOR).
The system tries to be very compact and implements a part of the POSIX standard.
https://github.com/RIOT-OS/RIOT
GitHub
GitHub - RIOT-OS/RIOT: RIOT - The friendly OS for IoT
RIOT - The friendly OS for IoT. Contribute to RIOT-OS/RIOT development by creating an account on GitHub.
A microkernel-based hobby OS with some non-standard solutions inside, custom build system written in shell and full-featured graphical interface.
https://ghostkernel.org
https://ghostkernel.org
One more hobby OS with cute composite window system and a couple of applications.
There is a video with a presentation about this OS where one of the authors shows slides using a viewer under Toaru OS itself.
https://toaruos.org/
There is a video with a presentation about this OS where one of the authors shows slides using a viewer under Toaru OS itself.
https://toaruos.org/
toaruos.org
ToaruOS - A Hobby Operating System for x86 PCs
A blog about minimalist and terminal-oriented software for Linux.
https://inconsolation.wordpress.com/
https://inconsolation.wordpress.com/
Inconsolation
Adventures with lightweight and minimalist software for Linux
Rover is a fast and simple filemanager for Linux terminal. It supports Vi-style navigation and significantly simplifies routine actions with files.
https://github.com/lecram/rover
https://github.com/lecram/rover
GitHub
GitHub - lecram/rover: simple file browser for the terminal
simple file browser for the terminal. Contribute to lecram/rover development by creating an account on GitHub.
I'm seriously worried about bloated software and websites. Programs become larger and slower, one webpage can be bigger than the whole DOOM distribution. Text editor can be slower than a 3D computer game computing shadows in realtime. I'm happy to see that others notice the problem too.
https://pxlnv.com/blog/bullshit-web/
https://www.wired.com/2016/04/average-webpage-now-size-original-doom/
https://pxlnv.com/blog/bullshit-web/
https://www.wired.com/2016/04/average-webpage-now-size-original-doom/
Pxlnv
The Bullshit Web
My home computer in 1998 had a 56K modem connected to our telephone line; we were allowed a maximum of thirty minutes of computer usage a day, because my parents — quite reasonably — did not want to have their telephone shut off for an evening at a time.…
Have you heard about tilde communities? Standalone Unix computers connected to the Internet which people share together for publishing websites, communication, learning programming and so on.
Tilde.Town is a most famous tilde community. Get a login and join this oldschool funny social network available from the Unix terminal via SSH.
http://tilde.town/
Tilde.Town is a most famous tilde community. Get a login and join this oldschool funny social network available from the Unix terminal via SSH.
http://tilde.town/
Lemon is a LALR parser generator written by Richard Hipp specially for the SQLite project. Lemon source code is short and well-commented. In opposite to other YACC-style parser generators it doesn't require global variables and can work in a multithreaded environment.
http://www.hwaci.com/sw/lemon/
http://www.hwaci.com/sw/lemon/
Случайно нашел краткое руководство к Lemon parser generator на русском. На том же сайте есть переводы руководств и к другим генераторам парсеров, а также краткие заметки по теории трансляции.
https://ps-group.github.io/compilers/lemon_doc
https://ps-group.github.io/compilers/lemon_doc
ps-group.github.io
Руководство по Lemon
Lemon появился, когда разработчиков SQLite не устроил код, сгенерированный GNU Bison. Генератор парсеров Lemon создаёт более чистый и простой парсер, который лучше обрабатывает переполнение стека и другие исключительные случаи, более удобен в многопоточной…
An interesting article developing the idea of packrat parsers towards fast incremental parsing for IDEs and other applications where full re-parsing of the source text can take too much time.
The article contains a full example of a library for incremental and traditional packrat parsing in EcmaScript 6.
https://ohmlang.github.io/pubs/sle2017/incremental-packrat-parsing.pdf
The article contains a full example of a library for incremental and traditional packrat parsing in EcmaScript 6.
https://ohmlang.github.io/pubs/sle2017/incremental-packrat-parsing.pdf
One more paper on packrat parsers. In this turn the authors created a set of macros for ANSI C that form a kind of DSL for construction of recursive-descent parsers. Semantic actions are written in plain C inside the blocks emerged from macro substitution. What is interesting, the resulting parser doesn't use any dynamic memory allocation, all the caches for memification widely used in packrat approach are statically preallocated for each non-terminal.
https://www.jstage.jst.go.jp/article/ipsjjip/26/0/26_335/_pdf/-char/en
https://www.jstage.jst.go.jp/article/ipsjjip/26/0/26_335/_pdf/-char/en
A fast and tiny non-conservative garbage collector for C.
http://piumarta.com/software/gsgc/index.shtml
http://piumarta.com/software/gsgc/index.shtml
An amazing book written by Hanspeter Mössenböck on object-oriented programming in general. All the examples in the book are coded in Oberon 2 but it doesn't matter because Mr. Mössenböck explains generic concepts, design patterns and approaches which don't depend on any language feature. All the described things can be applied to any modern high and middle level language. It is about ways to think — not tools!
One strong side of this book is its practice part. The main case study here is development of a rich-text editor which supports fonts and active graphics objects (UI elements, vector graphics, formulas, etc). Moreover, the author doesn't use any system toolkits or UI primitives, all the code deals with raw mouse/keyboard input and simple framebuffer output. This simple example resembles the more complex Oberon System made by Niklaus Emil Wirth and Jürg Gutknecht.
http://ssw.jku.at/Research/Books/Oberon2.pdf
One strong side of this book is its practice part. The main case study here is development of a rich-text editor which supports fonts and active graphics objects (UI elements, vector graphics, formulas, etc). Moreover, the author doesn't use any system toolkits or UI primitives, all the code deals with raw mouse/keyboard input and simple framebuffer output. This simple example resembles the more complex Oberon System made by Niklaus Emil Wirth and Jürg Gutknecht.
http://ssw.jku.at/Research/Books/Oberon2.pdf
A huge list of open source games with links to their source code repositories.
https://osgameclones.com/
https://osgameclones.com/
Osgameclones
Open Source Game Clones
List of open source clones and remakes of popular old-school games.
Наконец в руки попала бумажная копия книги "Гарри Поттер и методы рационального мышления". Всем советую этот фанфик Элиезера Юдковского. Он не только полезный, но и дико захватывающий!
http://hpmor.ru/
http://hpmor.ru/
Linear ML is a version of ML-like functional programming language based on the idea of linear types. This means that a reference to any heap-allocated object have to be used only one time. Such model allows implicit memory management without garbage collection and reference counting. It also provides a way to code safe multithreaded applications with zero-cost message passing.
The core ideas behind Linear ML can be found also in the more popular programming language — Rust.
https://github.com/pikatchu/LinearML
The core ideas behind Linear ML can be found also in the more popular programming language — Rust.
https://github.com/pikatchu/LinearML
GitHub
GitHub - pikatchu/LinearML: Functional language for parallel programming
Functional language for parallel programming. Contribute to pikatchu/LinearML development by creating an account on GitHub.