28
Meta, a Human-Friendly Programming Language
(language.metaproject.frl)
Hello!
This is the current Lemmy equivalent of https://www.reddit.com/r/ProgrammingLanguages/.
The content and rules are the same here as they are over there. Taken directly from the /r/ProgrammingLanguages overview:
This community is dedicated to the theory, design and implementation of programming languages.
Be nice to each other. Flame wars and rants are not welcomed. Please also put some effort into your post.
This isn't the right place to ask questions such as "What language should I use for X", "what language should I learn", and "what's your favorite language". Such questions should be posted in /c/learn_programming or /c/programming.
This is the right place for posts like the following:
See /r/ProgrammingLanguages for specific examples
Red/REBOL are a data format first. Many native data types. Lisp uses Fexpr and Red use a basic token. Each character!
Originally Posted on Hacker News by 9214
Red (and Rebol) are based on research in denotational semantics that Carl Sassenrath did. I'll try to briefly explain the main points.
Everything starts with a UTF-8 encoded string. Each valid token in this string is converted to an internal data representation - a boxed structure 4 machine pointers in size, called a value slot or sometimes a cell.
Value slot is composed of a header and a payload. Header contains various flags and datatype ID, payload specifies exact content of the value. If content doesn't fit in one value slot, then payload contains a pointer to an external buffer (an array of value slots, bytes, or other units + offset and start/end addresses IIRC) with extra data.
So, lexer converts string representation to a tree of value slots (this phase is called loading), which is essentially a concrete syntax tree (CST) — this is the crux of homoiconicity.
https://github.com/red/red/wiki/%5BDOC%5D-How-Red-works,-a-brief-explanation
https://github.com/red/red/wiki/%5BDOC%5D-Guru-Meditations#contexts-and-binding
https://github.com/red/red/wiki/%5BDOC%5D-Function-Evaluation
Who cares if creators cant name things great. Forget names lets use and improve technology.