Strange Code: Esoteric Languages That Make Programming Fun Again

Voorkant
No Starch Press, 27 sep 2022 - 496 pagina's
Strengthen your overall coding skills by exploring the wonderful, wild, and often weird world of esoteric languages (esolangs).

Strange Code starts with a dive into the underlying history of programming, covering the early computer-science concepts, like Turing machines and Turing completeness, that led to the languages we use today. It then explores the realm of “atypical” programming languages, introducing you to the out-of-the-box thinking that comes from these unusual approaches to coding.

Later chapters address the even more unusual esolangs, nearly all of which are like nothing you’ve ever seen. Finally, author Ron Kneusel helps you develop and use two entirely new programming languages. You may not apply these languages in your day job, but this one-of-a-kind book will motivate you to think differently about what it means to express thought through code, while discovering the far-flung boundaries of programming.

You’ll learn:
  • How to program with pictures using Piet
  • How to write two-dimensional programs in Befunge
  • How to implement machine-learning algorithms using the text pattern matching language SNOBOL
  • How to decipher Brainfuck code like [->-[>+”]>[[-+]+>+”]““]/liliHow to design and create two original programming languages
  • Learning to think in these languages will make you a better, more confident programmer.
     

    Inhoudsopgave

    A CherryPicked Review of Programming Languages
    3
    ALGOL
    9
    Logo
    15
    Prolog
    21
    Smalltalk
    27
    Summary
    41
    The Essentials of Programming Languages
    43
    Implementing Programming Languages
    45
    Understanding Piet
    245
    Piet in Action
    251
    A Tribute to Piet Mondrian
    261
    Discussion
    268
    Brainfuck
    271
    BF in Action
    280
    The BF Multiverse
    292
    Discussion
    295

    Data Types
    53
    Variables and Scope
    59
    Programming Paradigms
    68
    Summary
    76
    Turing Machines and Turing Completeness
    77
    Lets Build a Turing Machine
    84
    Summary
    93
    Forth
    97
    Square Root Redux
    118
    SNOBOL
    123
    Installation
    124
    Machine Learning with SNOBOL
    151
    Discussion
    160
    CLIPS
    163
    The Language
    166
    CLIPS in Action
    173
    Discussion
    190
    The ABCs of ABCs
    195
    ABC
    196
    ABC2 in Action
    203
    53
    211
    Discussion
    214
    FRACTRAN
    217
    Using FRACTRAN
    221
    55
    234
    Discussion
    239
    57
    240
    Piet
    243
    Befunge
    297
    Befunge in Action
    303
    Discussion
    314
    Filska
    319
    Implementating Filska
    331
    Summary
    340
    Using Filska
    341
    Fibonacci Anyone?
    348
    A Simple Fractal
    356
    Linear LeastSquares Fit to a Line
    365
    Summary
    371
    Firefly
    373
    Implementation
    380
    Summary
    389
    Using Firefly
    391
    Fly Time
    397
    Dance Dance
    405
    Discussion
    412
    Going Further
    415
    Postlude
    431
    Genetic Programming with Firefly
    433
    The Genetic Algorithm
    437
    Discussion
    446
    58
    452
    Index
    455
    63
    460
    Copyright

    Overige edities - Alles bekijken

    Veelvoorkomende woorden en zinsdelen

    Over de auteur (2022)

    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).

    Bibliografische gegevens