A Forth implementation and programming environment for ATmega microcontrollers
mywebspace.wisc.edu
mywebspace.wisc.edu
http://www.greenarraychips.com/
Gotta love having 144 Forth machines in a $20 chip.
It only needed one bit of input and one bit of output and the code fit into an 8-pin Tiny AVR and was probably just about a kilobyte of compiled C. The chip cost less than $1 in single units.
ARMs are nice and everything, but orders of magnitude overkill for the thousands of small devices like this.
I mean, at the end of the day, the tool you know is the tool you should use, but it's more difficult to quibble about the technicalities of it all the time.
I would argue that the biggest barrier to Cortex M0/M3/M4 adoption in the hobbyist/maker/startup community is the lack of coherent open tool chains. Many of the cheap programmers will only program a subset of chips, many pre-canned compilers don't include various features (Many lack support for the M0+, or the FPU on the M4F chips), it's almost impossible to get code working on a chip without delving into a vicious hellscape of linker scripts, and many manufacturers license their peripheral libraries under onerous non-free/non-open licenses.
I could program an AVR with one hand tied behind my back using an entirely open toolchain. Until I can do that with even a single manufacturer's Cortex Mx offerings, the AtTinys and AtMegas will be sticking around. I want to work on my project damn it, not debugging my toolchain.
I was impressed by reading the excellent 're: factor' blog; he often re-implements small unix utilities in Factor, for instance.
It's my understanding that most language research is on safety features, type systems and so on, so I don't know how interesting Forth would be.
can you implement that in y86? i didnt learnt x86 asm
Joy[3] was the first language to be described as “concatenative”, invented by the late Manfred von Thun; its operation is defined as a term rewriting system, but it can be implemented using a stack. If you want some theoretical background, Brent Kirby’s Theory of Concatenative Combinators[4] may be enlightening. Cat[5] was the first statically typed concatenative language, and Kitten is my successor to Cat.
If you’re looking at Rust, Kitten[6][7] is designed with similar goals in mind. It’s a language about safe, expressive abstractions with predictable, low runtime costs. It encourages expressing programs as compositions of effects. It is not usable for production but may be fun to play around with; we are currently working on a native backend.
[3]: http://www.kevinalbrecht.com/code/joy-mirror/joy.html
If so: does it have a package manager yet?
The last I was plunking around with Factor, 6-8 months ago, uh, "dire" was a good word to describe the package/library management situation. Is that still accurate?
Have you guys considered bootstrapping by using a package manager from another language/ecosystem? For instance, npm is pretty awesome, and they don't really care whether what's being distributed is javascript or not.
Package managers are ... important.