+0.23 Build Your Own Forth Interpreter (codingchallenges.fyi S:+0.18 )
87 points by AlexeyBrin 9 days ago | 27 comments on HN | Mild positive Editorial · v3.7 · 2026-02-26 04:40:21 0
Summary Education Access & Digital Inclusion Advocates
This URL presents a free, publicly accessible coding challenge focused on building a Forth interpreter, part of a broader educational platform. The content and structure consistently advocate for universal access to technical education through elimination of financial and other barriers. The strongest engagement is with Articles 26 (education), 27 (cultural participation), 25 (social protection via economic opportunity), and 13 (freedom of information), with minimal negative signals.
Article Heatmap
Preamble: +0.21 — Preamble P Article 1: +0.18 — Freedom, Equality, Brotherhood 1 Article 2: +0.13 — Non-Discrimination 2 Article 3: ND — Life, Liberty, Security Article 3: No Data — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: ND — No Torture Article 5: No Data — No Torture 5 Article 6: ND — Legal Personhood Article 6: No Data — Legal Personhood 6 Article 7: ND — Equality Before Law Article 7: No Data — Equality Before Law 7 Article 8: ND — Right to Remedy Article 8: No Data — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: ND — Fair Hearing Article 10: No Data — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: -0.11 — Privacy 12 Article 13: +0.28 — Freedom of Movement 13 Article 14: +0.20 — Asylum 14 Article 15: +0.13 — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: ND — Property Article 17: No Data — Property 17 Article 18: +0.18 — Freedom of Thought 18 Article 19: +0.28 — Freedom of Expression 19 Article 20: ND — Assembly & Association Article 20: No Data — Assembly & Association 20 Article 21: ND — Political Participation Article 21: No Data — Political Participation 21 Article 22: +0.23 — Social Security 22 Article 23: +0.23 — Work & Equal Pay 23 Article 24: ND — Rest & Leisure Article 24: No Data — Rest & Leisure 24 Article 25: +0.44 — Standard of Living 25 Article 26: +0.69 — Education 26 Article 27: +0.48 — Cultural Participation 27 Article 28: +0.23 — Social & International Order 28 Article 29: +0.13 — Duties to Community 29 Article 30: +0.13 — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
Editorial Mean +0.23 Structural Mean +0.18
Weighted Mean +0.27 Unweighted Mean +0.24
Max +0.69 Article 26 Min -0.11 Article 12
Signal 17 No Data 14
Volatility 0.17 (Medium)
Negative 1 Channels E: 0.6 S: 0.4
SETL +0.08 Editorial-dominant
FW Ratio 51% 30 facts · 29 inferences
Evidence 26% coverage
1H 10M 6L 14 ND
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.17 (3 articles) Security: 0.00 (0 articles) Legal: 0.00 (0 articles) Privacy & Movement: 0.13 (4 articles) Personal: 0.18 (1 articles) Expression: 0.28 (1 articles) Economic & Social: 0.30 (3 articles) Cultural: 0.58 (2 articles) Order & Duties: 0.16 (3 articles)
HN Discussion 11 top-level · 9 replies
ithkuil 2026-02-24 21:18 UTC link
"if you know one forth, you know one forth"
iberator 2026-02-24 21:35 UTC link
This is a strange article imo.

I was expecting to see FORTH in bare metal C or ASM.

There is a common myth about newbie programmers that FORTH is write-only and that you need to type everything in one line, without comments or function calls etc.

Writing forth is super easy especially if you have a stack machine at your disposal. For example when you are building your own virtual cpu/architecture with assembler and compiler.

It's more trivial than to understand any JavaScript framework lol

Research FORTH more guys - it doesn't need to be strange and hard :)

ps. Lisp SUCKS

/rant

spc476 2026-02-24 21:48 UTC link
I've already done that---ANS Forth for the 6809 (https://github.com/spc476/ANS-Forth).
dharmatech 2026-02-24 22:00 UTC link
Video where I demonstrate how I explore JONESFORTH using GDB:

https://youtu.be/giLsd-bik6A?si=Gwm3NJdUzyrmmopH

tombert 2026-02-24 23:22 UTC link
I've been on/off working on a homebrew NES game. Pretty much the go-to environment for that is assembly, which I'm sure I could write if I were motivated, but I find assembly considerably un-fun so I wanted to use a higher-level language.

I had been looking for an excuse to learn Forth, and its use in classic computing meant that it had a shot of being workable on the NES.

I was initially using IceForth but I had trouble getting that working, and so I got Codex to generate something that works, but then I also that building your own Forth is sort of a rite of passage for a software engineer, so I have been building my own Forth from scratch.

My custom hack-job isn't ready yet, but I was extremely impressed at the performance I was able to get on the NES with compiled Forth from the Codex thing on the NES. I'm getting roughly 80% of the speed for equivalent programs written in assembly, with much less code and this is without advanced optimizations. I do plan on finishing my custom one because I think I can build what I want a bit better than Codex, and I'm optimistic I can get the performance reasonable.

Forth is such a fascinating language, because it sort of enables you to work at any level of the program. You can write it super high level, almost like Lisp, but you can also poke around and create mappings to assembly, and you can do all this with decent performance no less! It has quickly become one of my more favorite scripting languages, though that might be because I have always had a soft spot for RPN.

SAI_Peregrinus 2026-02-25 01:53 UTC link
I like building little throwaway FORTH interpreters as an exercise when learning a new language. They tend to touch just enough common programming needs to be interesting: read user input and/or a file, parse the input, run a state machine with two stacks, write output.
fouc 2026-02-25 05:35 UTC link
For some reason this site feels AI generated to me.
ntavish 2026-02-25 06:12 UTC link
I wrote one some time ago, and it took me a lot longer than I thought it should. (it's core is finished, but dictionary is limited) https://ntavish.in/projects/emforth/
stevekemp 2026-02-25 07:40 UTC link
You might also enjoy this tutorial, which started out being based upon a hacker news thread:

https://github.com/skx/foth

I go through stages to implement minimal language.

fjfaase 2026-02-25 13:37 UTC link
In the past years, I developed a forth like language as an intermediate language for a C compiler. For debuging purposes, I also implemented a memory safe interpreter, besides a compiler that generates assembly output.

See my profile for link to my github repositories and look under MES-replacement for stack_c

alexthehurst 2026-02-25 16:27 UTC link
I’ve been working on a homemade CPU (in simulator) and I’m in the middle of implementing an ISA and assembler as a bug step up from working in machine code to working in assembly. I’ve been looking at Forth as a good option for a next-level-up language which is relatively easy to implement and easy to script with.
js8 2026-02-24 21:30 UTC link
So implement four of them, and you will know them all! First Forth with indirect threaded code, second Forth with direct threaded code, third Forth with subroutine threaded code, and the final fourth with token threaded code.
AlexeyBrin 2026-02-24 21:36 UTC link
I doubt you will want to code professionally in Forth unless you work on embedded, so the dialect you learn doesn't matter too much. But it is interesting to implement a small interpreter and play with it.
volemo 2026-02-24 21:50 UTC link
I was with you 'till the last line. :P
sophacles 2026-02-24 22:13 UTC link
Advanced challenge: make it self-hosting.
lioeters 2026-02-25 00:27 UTC link
I enjoyed that! Nice intro to JonesForth and how it maps to assembly instructions.
EarlKing 2026-02-25 03:07 UTC link
> There is a common myth about newbie programmers that FORTH is write-only and that you need to type everything in one line, without comments or function calls etc.

By contrast, in APL it's not a myth at all.

ithkuil 2026-02-25 14:33 UTC link
(I'm saying this with love)
WalterGR 2026-02-25 16:33 UTC link
Here’s a link to the right directory at least: https://github.com/FransFaase/MES-replacement/tree/main/src
don-bright 2026-02-26 02:06 UTC link
thats so awesome. i wonder what a live forth interpreter would look like on NES.
Editorial Channel
What the content says
+0.40
Article 26 Education
High Advocacy
Editorial
+0.40
SETL
-0.15

Content explicitly supports right to education through free, accessible coding challenges and technical instruction.

+0.35
Article 27 Cultural Participation
Medium Advocacy
Editorial
+0.35
SETL
+0.13

Content supports participation in cultural and scientific life through freely accessible technical education.

+0.30
Article 13 Freedom of Movement
Medium Advocacy
Editorial
+0.30
SETL
+0.12

Content provides freely accessible information and learning resources without apparent geographic restriction.

+0.30
Article 19 Freedom of Expression
Medium Advocacy
Editorial
+0.30
SETL
+0.12

Content is presented as publicly available information and educational material without apparent censorship or editorial constraint.

+0.30
Article 25 Standard of Living
Medium Advocacy
Editorial
+0.30
SETL
-0.13

Platform provides free educational resources supporting economic literacy and skill development.

+0.25
Preamble Preamble
Medium Advocacy
Editorial
+0.25
SETL
+0.16

Content emphasizes universal learning opportunity through free coding education, aligning with preamble's vision of equal dignity and social progress.

+0.25
Article 22 Social Security
Medium Advocacy
Editorial
+0.25
SETL
+0.11

Educational access supports social and cultural rights through free learning opportunity.

+0.25
Article 23 Work & Equal Pay
Medium Advocacy
Editorial
+0.25
SETL
+0.11

Content supports right to work by providing free skills training and career development opportunity.

+0.25
Article 28 Social & International Order
Medium Advocacy
Editorial
+0.25
SETL
+0.11

Content supports social and international order enabling human rights through educational opportunity.

+0.20
Article 1 Freedom, Equality, Brotherhood
Medium Advocacy
Editorial
+0.20
SETL
+0.10

Content treats all learners as equal participants in educational opportunity without discrimination based on background.

+0.20
Article 14 Asylum
Low Advocacy
Editorial
+0.20
SETL
0.00

Content does not explicitly address asylum or protection but offers equal access opportunity to all.

+0.20
Article 18 Freedom of Thought
Low Advocacy
Editorial
+0.20
SETL
+0.10

Educational content is presented without ideological pressure or religious/philosophical imposition.

+0.15
Article 2 Non-Discrimination
Low Advocacy
Editorial
+0.15
SETL
+0.09

Content does not explicitly address discrimination but design appears non-discriminatory.

+0.15
Article 15 Nationality
Low Advocacy
Editorial
+0.15
SETL
+0.09

No explicit nationality claims; equal treatment implied in universal access.

+0.15
Article 29 Duties to Community
Low Advocacy
Editorial
+0.15
SETL
+0.09

Educational content is presented without apparent suppression of human rights or freedoms.

+0.15
Article 30 No Destruction of Rights
Low Advocacy
Editorial
+0.15
SETL
+0.09

Content does not promote destruction of rights; supports their advancement.

+0.05
Article 12 Privacy
Medium Practice
Editorial
+0.05
SETL
+0.17

Content does not address privacy considerations; editorial stance is neutral.

ND
Article 3 Life, Liberty, Security

Right to life, liberty, and security of person not directly addressed in technical educational content.

ND
Article 4 No Slavery

Slavery and servitude not addressed in programming education context.

ND
Article 5 No Torture

Torture and cruel treatment not addressed.

ND
Article 6 Legal Personhood

Right to recognition as a person not directly addressed.

ND
Article 7 Equality Before Law

Equality before law not directly addressed.

ND
Article 8 Right to Remedy

Right to effective remedy not addressed.

ND
Article 9 No Arbitrary Detention

Arbitrary arrest and detention not addressed.

ND
Article 10 Fair Hearing

Fair and public hearing not addressed.

ND
Article 11 Presumption of Innocence

Criminal responsibility and presumption of innocence not addressed.

ND
Article 16 Marriage & Family

Marriage and family rights not addressed in programming education context.

ND
Article 17 Property

Property rights not directly addressed.

ND
Article 20 Assembly & Association

Peaceful assembly and association rights not addressed in educational content context.

ND
Article 21 Political Participation

Participation in government not addressed.

ND
Article 24 Rest & Leisure

Rest and leisure rights not addressed.

Structural Channel
What the site does
+0.45
Article 26 Education
High Advocacy
Structural
+0.45
Context Modifier
+0.27
SETL
-0.15

Platform architecture provides universal free access to educational content with accessibility features (theme toggle, navigation).

+0.35
Article 25 Standard of Living
Medium Advocacy
Structural
+0.35
Context Modifier
+0.12
SETL
-0.13

Platform provides free educational resources supporting economic literacy and skill development.

+0.30
Article 27 Cultural Participation
Medium Advocacy
Structural
+0.30
Context Modifier
+0.15
SETL
+0.13

Platform enables equitable participation in digital culture and technological advancement.

+0.25
Article 13 Freedom of Movement
Medium Advocacy
Structural
+0.25
Context Modifier
0.00
SETL
+0.12

Website structure allows free access to content from any location without apparent blocking or restriction.

+0.25
Article 19 Freedom of Expression
Medium Advocacy
Structural
+0.25
Context Modifier
0.00
SETL
+0.12

Website structure allows public dissemination of content; no apparent editorial gatekeeping observed.

+0.20
Article 14 Asylum
Low Advocacy
Structural
+0.20
Context Modifier
0.00
SETL
0.00

No geographic or nationality-based barriers apparent in access model.

+0.20
Article 22 Social Security
Medium Advocacy
Structural
+0.20
Context Modifier
0.00
SETL
+0.11

Platform structure enables equal access to social and cultural knowledge (programming education).

+0.20
Article 23 Work & Equal Pay
Medium Advocacy
Structural
+0.20
Context Modifier
0.00
SETL
+0.11

Educational content structure enables access to technical skills valuable for employment.

+0.20
Article 28 Social & International Order
Medium Advocacy
Structural
+0.20
Context Modifier
0.00
SETL
+0.11

Platform structure enables universal participation in skill development supporting broader social cooperation.

+0.15
Preamble Preamble
Medium Advocacy
Structural
+0.15
Context Modifier
0.00
SETL
+0.16

Site structure allows unrestricted access to educational content without apparent barriers, supporting equitable access principles.

+0.15
Article 1 Freedom, Equality, Brotherhood
Medium Advocacy
Structural
+0.15
Context Modifier
0.00
SETL
+0.10

Public access structure does not appear to differentiate users by protected characteristics.

+0.15
Article 18 Freedom of Thought
Low Advocacy
Structural
+0.15
Context Modifier
0.00
SETL
+0.10

No barriers to access based on thought, conscience, or religion apparent.

+0.10
Article 2 Non-Discrimination
Low Advocacy
Structural
+0.10
Context Modifier
0.00
SETL
+0.09

No observable barriers based on protected characteristics in access model.

+0.10
Article 15 Nationality
Low Advocacy
Structural
+0.10
Context Modifier
0.00
SETL
+0.09

No nationality-based barriers in structural design.

+0.10
Article 29 Duties to Community
Low Advocacy
Structural
+0.10
Context Modifier
0.00
SETL
+0.09

No structural elements restricting rights or freedoms apparent.

+0.10
Article 30 No Destruction of Rights
Low Advocacy
Structural
+0.10
Context Modifier
0.00
SETL
+0.09

Platform structure does not enable or encourage abuse of rights.

-0.15
Article 12 Privacy
Medium Practice
Structural
-0.15
Context Modifier
-0.08
SETL
+0.17

Google Analytics tracking with IP anonymization present; minimal but observable privacy impact on user data collection.

ND
Article 3 Life, Liberty, Security

No structural elements directly bearing on this provision.

ND
Article 4 No Slavery

No structural elements bearing on this provision.

ND
Article 5 No Torture

No structural elements bearing on this provision.

ND
Article 6 Legal Personhood

No structural elements bearing on this provision.

ND
Article 7 Equality Before Law

No structural elements bearing on this provision.

ND
Article 8 Right to Remedy

No structural elements bearing on this provision.

ND
Article 9 No Arbitrary Detention

No structural elements bearing on this provision.

ND
Article 10 Fair Hearing

No structural elements bearing on this provision.

ND
Article 11 Presumption of Innocence

No structural elements bearing on this provision.

ND
Article 16 Marriage & Family

No structural elements bearing on this provision.

ND
Article 17 Property

No structural elements bearing on this provision.

ND
Article 20 Assembly & Association

No structural elements bearing on this provision.

ND
Article 21 Political Participation

No structural elements bearing on this provision.

ND
Article 24 Rest & Leisure

No structural elements bearing on this provision.

Supplementary Signals
How this content communicates, beyond directional lean. Learn more
Epistemic Quality
How well-sourced and evidence-based is this content?
0.72 medium claims
Sources
0.8
Evidence
0.7
Uncertainty
0.6
Purpose
0.8
Propaganda Flags
No manipulative rhetoric detected
0 techniques detected
Emotional Tone
Emotional character: positive/negative, intensity, authority
measured
Valence
+0.4
Arousal
0.3
Dominance
0.3
Transparency
Does the content identify its author and disclose interests?
0.33
✗ Author
More signals: context, framing & audience
Solution Orientation
Does this content offer solutions or only describe problems?
0.75 solution oriented
Reader Agency
0.8
Stakeholder Voice
Whose perspectives are represented in this content?
0.65 3 perspectives
Speaks: individualsinstitution
About: Charles H. Moore (creator)
Temporal Framing
Is this content looking backward, at the present, or forward?
mixed medium term
Geographic Scope
What geographic area does this content cover?
global
United States
Complexity
How accessible is this content to a general audience?
moderate medium jargon domain specific
Longitudinal · 8 evals
+1 0 −1 HN
Audit Trail 28 entries
2026-02-28 14:39 eval_success Lite evaluated: Neutral (0.00) - -
2026-02-28 14:39 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral) 0.00
reasoning
Tech tutorial no rights stance
2026-02-28 14:39 model_divergence Cross-model spread 0.27 exceeds threshold (4 models) - -
2026-02-28 14:34 eval_success Lite evaluated: Neutral (0.00) - -
2026-02-28 14:34 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral)
reasoning
Tech tutorial no rights stance
2026-02-28 14:34 model_divergence Cross-model spread 0.27 exceeds threshold (4 models) - -
2026-02-26 22:41 eval_success Light evaluated: Neutral (0.00) - -
2026-02-26 22:41 eval Evaluated by llama-4-scout-wai: 0.00 (Neutral)
2026-02-26 20:07 dlq Dead-lettered after 1 attempts: Build Your Own Forth Interpreter - -
2026-02-26 20:05 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 20:04 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 20:03 dlq Dead-lettered after 1 attempts: Build Your Own Forth Interpreter - -
2026-02-26 20:03 eval_failure Evaluation failed: Error: Unknown model in registry: llama-4-scout-wai - -
2026-02-26 20:03 eval_failure Evaluation failed: Error: Unknown model in registry: llama-4-scout-wai - -
2026-02-26 20:02 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 17:31 dlq Dead-lettered after 1 attempts: Build Your Own Forth Interpreter - -
2026-02-26 17:29 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 17:28 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 17:27 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 09:29 eval_success Evaluated: Neutral (0.04) - -
2026-02-26 09:29 eval Evaluated by deepseek-v3.2: +0.04 (Neutral) 9,658 tokens
2026-02-26 08:56 dlq Dead-lettered after 1 attempts: Build Your Own Forth Interpreter - -
2026-02-26 08:55 dlq Dead-lettered after 1 attempts: Build Your Own Forth Interpreter - -
2026-02-26 08:55 dlq Dead-lettered after 1 attempts: Build Your Own Forth Interpreter - -
2026-02-26 04:40 eval Evaluated by claude-haiku-4-5-20251001: +0.27 (Mild positive) 10,772 tokens -0.08
2026-02-26 04:18 eval Evaluated by claude-haiku-4-5-20251001: +0.35 (Neutral) 10,445 tokens +0.09
2026-02-26 02:53 eval Evaluated by claude-haiku-4-5-20251001: +0.26 (Mild positive) 10,825 tokens -0.12
2026-02-26 02:52 eval Evaluated by claude-haiku-4-5-20251001: +0.38 (Neutral) 10,285 tokens