Files
ioccc/1989/robison/README.md
T
Cody Boone Ferguson 249e865de2 Mass edit README.md: remove top award/author lines
As requested on GitHub: a tool that will be written, readme2index, will,
as explained:

    '... will take the converted HTML from the README.md markdown and
    inject it into an HTML template. Things such title, award one and
    author information will be injected into the HTML page ahead of the
    HTML that was converted from the README.md markdown. Without going
    into details of HOW at this time, the result will be a coherent HTML
    index.html page with the winner title / award, winning author
    information, and important file links come from other sources and
    NOT from the README.md file.

    The text from the 1st award line, thru the authorship information,
    and up to but not including the "## To build:" line in the README.md
    file will just get in the way. Moreover authors might be tempted to
    try and maintain that top of README.md text instead of working with
    the author/_author_handle_.json and winner .winner.json files.

This was done with my[0] sgit(1) (https://github.com/xexyl/sgit) tool like:

    sgit -o -n -e '/^## To build:/,$p' '[12][0-9][0-9][0-9]/*/README.md'

[0] Is that shameless self-promotion? I don't know but I don't care: it
is generally a very useful tool and has been used in other repos too.
Besides, I've done it many times before and it's a great example that I
will be adding to the README.md file of the tool, one I hadn't thought
of doing.
2023-11-05 03:39:46 -08:00

2.5 KiB

To build:

make all

Bugs and (Mis)features:

The current status of this entry is:

STATUS: INABIAF - please **DO NOT** fix

For more detailed information see 1989 robison in bugs.md.

To use:

./robison
# enter valid expressions

Try:

./robison
11x10

echo 1x10x111 | ./robison

echo 1+1+10 | ./robison

echo 100 - 1 | ./robison

echo -100 x 100 + 1 | ./robison

echo 100 / 100 | ./robison # <-- what happens here ?

NOTE: This program will very likely crash or break into tiny bits :-) if you feed it numbers with non-binary digits.

This is supposed to happen. As is written in the The Jargon File:

That's not a bug, that's a feature.

Judges' remarks:

Sites with punch card facilities will be happy to note that the source deck can be re-collated with an ASCII sort.

Note that this program uses only a small subset of the constructs that the C language supports.

For an interesting document on APL, see https://computerhistory.org/blog/the-apl-programming-language-source-code/.

Author's remarks:

This program is a handy picoAPL interpreter written in C--. It outputs the evaluation of an APL expression from standard input. Functions are limited to dyadic +,-,x, and unary -; numerals must be binary. Parentheses may be used for grouping. For example:

101x111-100

prints:

1111

That is 5x(7-4) is 15. (APL groups from right to left.) Extending it to the full APL language should be trivial.

The C-- language improves the C language by removing superfluous and confusing features: arithmetic, logical operations, shifts, relational operators, address-of, and flow control. In fact, the only expressions retained are function calls, indirection, array assignments, the ',' operator, and sizeof. Despite these restrictions, the C-- program does arithmetic on arbitrarily large binary numbers.

To obtain a C-- reference, simply rip out the irrelevant pages from your K&R C manual. To obtain a C-- compiler, simply rip out the irrelevant bytes from your cc compiler.

This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved. You are free to share and adapt this file under the terms of this license:

Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)

For more information, see: https://creativecommons.org/licenses/by-sa/4.0/