
Strange Code
Esoteric Languages That Make Programming Fun Again
Ronald T. Kneusel(Author)
No Starch Press
Published on 27. September 2022
Book
Paperback/Softback
496 pages
978-1-7185-0240-6 (ISBN)
Description
Explore the wonderful, wild, and often weird world of esoteric programming languages. Beginning with the history and theory of programming languages, addressing concepts like Turing machines and Turing completeness. Then a tour of three 'atypical' programming languages, real languages that are unusual and require out of the box thinking. Then, five chapters on existing esoteric languages (esolangs). Finally, the remaining chapters detail the development and use of two entirely new programming languages.
Reviews / Votes
"[No Starch Press] had me at 'esolangs' . . . I am almost always a fan of a book that talks about how to build a programming language. This one not only talks about some of the concepts involved in doing that, and shows how to build two custom languages (Filska and Firefly), AND talks about a few popular esoteric languages and how they warp your brain in a good way, it takes the unusual step of examining some languages that Kneusel describes as 'atypical,' which have some interesting and useful properties. His coverage of CLIPS, alone, is worth the price of admission here.The knowledge gained here is foundational, and will help [you] with all sorts of different kinds of applications . . . I think every programmer should read it."
-Ted Neward, "The Dude of Software," Principal, Neward & Associates; Technologist, Executive Leader, Speaker/Author
"A fascinating and thought-provoking tour through programming languages. Strange Code guides you through some mostly forgotten languages-such as Forth, SNOBOL, and CLIPS-before exploring more experimental languages-such as Piet-where your source code is an image. I particularly enjoyed Firefly, a language for the BBC micro:bit, created especially for the book."
-Sean McManus, Author of Mission Python: Code a Space Adventure Game!
"[Gives] a grounding in the basics of concepts like Turing Completeness without leaving readers to fend for themselves in a forest of of dense computer science arcana. As a reference and source for teachers, Strange Code has much to commend it."
-Terry Freedman, Teach Secondary magazine
More details
Language
English
Place of publication
San Francisco
United States
Product notice
Paperback (trade)
Unsewn / adhesive bound
Dimensions
Height: 233 mm
Width: 179 mm
Thickness: 32 mm
Weight
924 gr
ISBN-13
978-1-7185-0240-6 (9781718502406)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Other editions
Additional editions

E-Book
09/2022
No Starch Press
€38.99
Available for download
Person
A programming language enthusiast, Ronald T. Kneusel's experience with programming languages began circa 1980 when he first encountered an Apple II computer. Decades later, he completed a PhD in machine learning from the University of Colorado, Boulder, and now works in the industry developing deep learning systems. He is the author of Practical Deep Learning: A Python-Based Introduction (No Starch Press), Math for Deep Learning (No Starch Press), Numbers and Computers (Springer), and Random Numbers and Computers (Springer).
Content
Part I: On Programming Languages
Chapter 1: A Cherry-Picked Review of Programming Languages
Chapter 2: The Essentials of Programming Languages
Chapter 3: Turing Machines and Turing Completeness
Part II: Atypical Programming Languages
Chapter 4: Forth
Chapter 5: SNOBOL
Chapter 6: CLIPS
Part III: Esoteric Programming Languages
Chapter 7: The ABCs of ABCs
Chapter 8: FRACTRAN
Chapter 9: Piet
Chapter 10: Brainfuck
Chapter 11: Befunge
Part IV: Homegrown Esolangs
Chapter 12: Filska
Chapter 13: Using Filska
Chapter 14: Firefly
Chapter 15: Using Firefly
Chapter 16: Going Further
Appendix A: Genetic Programming with Firefly
Chapter 1: A Cherry-Picked Review of Programming Languages
Chapter 2: The Essentials of Programming Languages
Chapter 3: Turing Machines and Turing Completeness
Part II: Atypical Programming Languages
Chapter 4: Forth
Chapter 5: SNOBOL
Chapter 6: CLIPS
Part III: Esoteric Programming Languages
Chapter 7: The ABCs of ABCs
Chapter 8: FRACTRAN
Chapter 9: Piet
Chapter 10: Brainfuck
Chapter 11: Befunge
Part IV: Homegrown Esolangs
Chapter 12: Filska
Chapter 13: Using Filska
Chapter 14: Firefly
Chapter 15: Using Firefly
Chapter 16: Going Further
Appendix A: Genetic Programming with Firefly