Fixes in html files of 1989
This commit is contained in:
1 parent
e8d868e0ed
commit
871e1114f7
13 files changed
+74
-71
No files matched your search
+3
-3
@@ -8,15 +8,15 @@ You may then wish to look at the Author's remarks for even more details.
|
||||
Instructions for use: Run `make` to compile entries (it is possible that on
|
||||
System V or non-Unix systems the Makefile needs to be changed).
|
||||
|
||||
The Makefile for ["Best self modifying program"](fubar/index.html) always uses
|
||||
The Makefile for [Best self modifying program](fubar/index.html) always uses
|
||||
the most portable version because there is no loss of functionality in
|
||||
using it. In the case of the ["Best game"](tromp/index.html) entry, however, some
|
||||
using it. In the case of the [Best game](tromp/index.html) entry, however, some
|
||||
functionality is lost in the portable version and so its Makefile uses
|
||||
the original program.
|
||||
|
||||
This year, the [Best of Show](jar.2/index.html) was given to the most useful program.
|
||||
|
||||
The ["Strangest abuse of the rules"](jar.1/index.html) award was given this year
|
||||
The [Strangest abuse of the rules](jar.1/index.html) award was given this year
|
||||
to stress the fact that starting in 1990, compiling entries must result a
|
||||
regular executable file.
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ On many systems the compiler will not allow you to send the object file to
|
||||
```
|
||||
|
||||
As a last resort the `jar.1.sh` script provided simulates
|
||||
writing the raw binary of the .o file to the terminal.
|
||||
writing the raw binary of the `.o` object file to the terminal.
|
||||
|
||||
Abuse of the rules winning entry usually result in a change of the rules.
|
||||
Starting in 1990, compiling entries must result an regular file
|
||||
@@ -78,8 +78,8 @@ binary to the `/dev/tty` special file.
|
||||
|
||||
The use of piping raw binary thru stings makes the original 1989 output
|
||||
more apparent, as was the case when using dumb CRT terminals (some
|
||||
do dumb that they couldn't even process simple ANSI escape sequences)
|
||||
were more common.
|
||||
so dumb that they couldn't even process simple ANSI escape sequences)
|
||||
was more common.
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
@@ -420,7 +420,7 @@ See the <a href="#alternate-code">Alternate code</a> section below for more deta
|
||||
<code>/dev/tty</code>. The author suggested:</p>
|
||||
<pre><code> cc -c -o /dev/tty jar.1.c</code></pre>
|
||||
<p>As a last resort the <code>jar.1.sh</code> script provided simulates
|
||||
writing the raw binary of the .o file to the terminal.</p>
|
||||
writing the raw binary of the <code>.o</code> object file to the terminal.</p>
|
||||
<p>Abuse of the rules winning entry usually result in a change of the rules.
|
||||
Starting in 1990, compiling entries must result an regular file
|
||||
which can be executed.</p>
|
||||
@@ -446,8 +446,8 @@ to standard output, the original shell command that once wrote raw
|
||||
binary to the <code>/dev/tty</code> special file.</p>
|
||||
<p>The use of piping raw binary thru stings makes the original 1989 output
|
||||
more apparent, as was the case when using dumb CRT terminals (some
|
||||
do dumb that they couldn’t even process simple ANSI escape sequences)
|
||||
were more common.</p>
|
||||
so dumb that they couldn’t even process simple ANSI escape sequences)
|
||||
was more common.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<p>This program is (supposedly) the smallest C program able to print “Hello
|
||||
world.”. The compilation itself produces the desired printout and the program
|
||||
|
||||
@@ -31,11 +31,11 @@ NOTE: this entry will likely segfault on invalid input.
|
||||
## Judges' remarks:
|
||||
|
||||
This is the most useful program submitted this year. It is a
|
||||
rather large subset of lisp. It has no error recovery, and
|
||||
performs rather poorly in a number of cases. Even so, placing
|
||||
all this functionality in such a small, densely packed program,
|
||||
is impressive enough to win the Best of Show award.
|
||||
|
||||
rather large subset of
|
||||
[lisp](https://en.wikipedia.org/wiki/Lisp_(programming_language)).
|
||||
It has no error recovery, and performs rather poorly in a number of cases. Even
|
||||
so, placing all this functionality in such a small, densely packed program, is
|
||||
impressive enough to win the `Best of Show` award.
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
|
||||
@@ -425,10 +425,11 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
|
||||
./try.sh try.lisp</code></pre>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
<p>This is the most useful program submitted this year. It is a
|
||||
rather large subset of lisp. It has no error recovery, and
|
||||
performs rather poorly in a number of cases. Even so, placing
|
||||
all this functionality in such a small, densely packed program,
|
||||
is impressive enough to win the Best of Show award.</p>
|
||||
rather large subset of
|
||||
<a href="https://en.wikipedia.org/wiki/Lisp_(programming_language)">lisp</a>.
|
||||
It has no error recovery, and performs rather poorly in a number of cases. Even
|
||||
so, placing all this functionality in such a small, densely packed program, is
|
||||
impressive enough to win the <code>Best of Show</code> award.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<p>This program implements a Lisp interpreter in 1465 bytes of source.
|
||||
Some sophisticated features supported, e.g. functionals and recursion.
|
||||
|
||||
@@ -41,7 +41,8 @@ it's a `#define` it's easy to set up.
|
||||
You do not have to define `P` but if you do you can replace the value with
|
||||
whatever you wish, as long as it's a positive `int` (or evaluates to a positive
|
||||
`int` like the default `(A<<AP)` does). Too high a value will likely cause the
|
||||
program to fail and a negative value will cause a compilation error.
|
||||
program to fail and a negative value will cause a compilation error as will a
|
||||
value that's not a number.
|
||||
|
||||
|
||||
### Alternate use:
|
||||
@@ -78,7 +79,7 @@ is read through stdin. The larger the template, the better the
|
||||
result. A maximum of `2**12` chars are used. From the template,
|
||||
the program calculates the statistics of chars that immediately
|
||||
follow a given string (correlator string) of a certain length
|
||||
(currently 4 - can be varied by changing the definition for P
|
||||
(currently 4 - can be varied by changing the definition for `P`
|
||||
accordingly). A character is randomly chosen, weighted by its
|
||||
probability to occur after the correlator string. That
|
||||
character is printed to stdout and placed at the end of the
|
||||
@@ -86,7 +87,7 @@ correlator string, whose first character is discarded.
|
||||
Meaningful words are therefore usually preserved, the effect on
|
||||
sentences can be dramatically random.
|
||||
|
||||
You might want to vary the definition of P between 2 and 10 and
|
||||
You might want to vary the definition of `P` between 2 and 10 and
|
||||
observe the result.
|
||||
|
||||
|
||||
|
||||
@@ -419,7 +419,8 @@ it’s a <code>#define</code> it’s easy to set up.</p>
|
||||
<p>You do not have to define <code>P</code> but if you do you can replace the value with
|
||||
whatever you wish, as long as it’s a positive <code>int</code> (or evaluates to a positive
|
||||
<code>int</code> like the default <code>(A<<AP)</code> does). Too high a value will likely cause the
|
||||
program to fail and a negative value will cause a compilation error.</p>
|
||||
program to fail and a negative value will cause a compilation error as will a
|
||||
value that’s not a number.</p>
|
||||
<h3 id="alternate-use">Alternate use:</h3>
|
||||
<pre><code> ./ovdluhe.alt</code></pre>
|
||||
<h3 id="alternate-try">Alternate try:</h3>
|
||||
@@ -439,14 +440,14 @@ is read through stdin. The larger the template, the better the
|
||||
result. A maximum of <code>2**12</code> chars are used. From the template,
|
||||
the program calculates the statistics of chars that immediately
|
||||
follow a given string (correlator string) of a certain length
|
||||
(currently 4 - can be varied by changing the definition for P
|
||||
(currently 4 - can be varied by changing the definition for <code>P</code>
|
||||
accordingly). A character is randomly chosen, weighted by its
|
||||
probability to occur after the correlator string. That
|
||||
character is printed to stdout and placed at the end of the
|
||||
correlator string, whose first character is discarded.
|
||||
Meaningful words are therefore usually preserved, the effect on
|
||||
sentences can be dramatically random.</p>
|
||||
<p>You might want to vary the definition of P between 2 and 10 and
|
||||
<p>You might want to vary the definition of <code>P</code> between 2 and 10 and
|
||||
observe the result.</p>
|
||||
<!--
|
||||
|
||||
|
||||
+10
-11
@@ -19,11 +19,10 @@ out. See [alternate code](#alternate-code) below for more details.
|
||||
|
||||
This version was described by the author like:
|
||||
|
||||
I could have squeezed the program under 1024 bytes without the
|
||||
trace subroutine, but I felt it was important for understanding
|
||||
the program. Besides it is fun to watch the tape zooming back
|
||||
and forth as the program runs. A much better debugger or trace
|
||||
could easily be added.
|
||||
> I could have squeezed the program under 1024 bytes without the trace
|
||||
subroutine, but I felt it was important for understanding the program. Besides
|
||||
it is fun to watch the tape zooming back and forth as the program runs. A much
|
||||
better debugger or trace could easily be added.
|
||||
|
||||
|
||||
### Alternate build:
|
||||
@@ -117,15 +116,15 @@ with step 1. A call to the trace routine is just before step
|
||||
|
||||
The previous and current Fibonacci numbers are kept in base
|
||||
1 form with the current on the right. The first three
|
||||
steps set up the first two numbers, `1` and `1`. Then
|
||||
[beginning with `@ (`] a marker of `III` is created and
|
||||
steps set up the first two numbers, `1` and `1`. Then,
|
||||
beginning with '`@ (`', a marker of '`III`' is created and
|
||||
the current number is copied to the right of the
|
||||
marker. Then (beginning with `OV `) the number is
|
||||
marker. Then, beginning with '`OV `', the number is
|
||||
converted to binary by repeatedly dividing by 2 leaving I
|
||||
for remainder `1`, and II for remainder `0`. Next
|
||||
(beginning with `WV `) the binary representation is
|
||||
for remainder `1`, and II for remainder '`0`'. Next,
|
||||
beginning with '`WV `', the binary representation is
|
||||
printed and its symbols and the marker are erased.
|
||||
Finally (beginning with `EEn`) the two numbers are
|
||||
Finally, beginning with '`EEn`', the two numbers are
|
||||
added and the current number copied to the left to
|
||||
become the previous. Then the cycle repeats.
|
||||
|
||||
|
||||
+12
-11
@@ -409,11 +409,12 @@ out. See <a href="#alternate-code">alternate code</a> below for more details.</p
|
||||
<pre><code> ./paul</code></pre>
|
||||
<h2 id="alternate-code">Alternate code:</h2>
|
||||
<p>This version was described by the author like:</p>
|
||||
<p>I could have squeezed the program under 1024 bytes without the
|
||||
trace subroutine, but I felt it was important for understanding
|
||||
the program. Besides it is fun to watch the tape zooming back
|
||||
and forth as the program runs. A much better debugger or trace
|
||||
could easily be added.</p>
|
||||
<blockquote>
|
||||
<p>I could have squeezed the program under 1024 bytes without the trace
|
||||
subroutine, but I felt it was important for understanding the program. Besides
|
||||
it is fun to watch the tape zooming back and forth as the program runs. A much
|
||||
better debugger or trace could easily be added.</p>
|
||||
</blockquote>
|
||||
<h3 id="alternate-build">Alternate build:</h3>
|
||||
<pre><code> make alt</code></pre>
|
||||
<h3 id="alternate-use">Alternate use:</h3>
|
||||
@@ -482,15 +483,15 @@ with step 1. A call to the trace routine is just before step
|
||||
<h3 id="quick-outline-of-the-turing-program">Quick outline of the Turing program:</h3>
|
||||
<p>The previous and current Fibonacci numbers are kept in base
|
||||
1 form with the current on the right. The first three
|
||||
steps set up the first two numbers, <code>1</code> and <code>1</code>. Then
|
||||
[beginning with <code>@ (</code>] a marker of <code>III</code> is created and
|
||||
steps set up the first two numbers, <code>1</code> and <code>1</code>. Then,
|
||||
beginning with ‘<code>@ (</code>’, a marker of ‘<code>III</code>’ is created and
|
||||
the current number is copied to the right of the
|
||||
marker. Then (beginning with <code>OV</code>) the number is
|
||||
marker. Then, beginning with ‘<code>OV</code>’, the number is
|
||||
converted to binary by repeatedly dividing by 2 leaving I
|
||||
for remainder <code>1</code>, and II for remainder <code>0</code>. Next
|
||||
(beginning with <code>WV</code>) the binary representation is
|
||||
for remainder <code>1</code>, and II for remainder ‘<code>0</code>’. Next,
|
||||
beginning with ‘<code>WV</code>’, the binary representation is
|
||||
printed and its symbols and the marker are erased.
|
||||
Finally (beginning with <code>EEn</code>) the two numbers are
|
||||
Finally, beginning with ‘<code>EEn</code>’, the two numbers are
|
||||
added and the current number copied to the left to
|
||||
become the previous. Then the cycle repeats.</p>
|
||||
<h3 id="portability">Portability</h3>
|
||||
|
||||
@@ -21,7 +21,7 @@ than meets the PI.
|
||||
## Author's remarks:
|
||||
|
||||
Passes lint, but not with the strictest options, for it contains some
|
||||
"null-statements", as well two identifiers which are, if compilers only take 6
|
||||
"null-statements", as well as two identifiers which are, if compilers only take 6
|
||||
characters, the same. It also uses `write(2)`, so not totally system
|
||||
independent.
|
||||
|
||||
|
||||
@@ -410,7 +410,7 @@ Location: <a href="../../location.html#NL">NL</a> - <em>Kingdom of the Netherlan
|
||||
than meets the PI.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<p>Passes lint, but not with the strictest options, for it contains some
|
||||
“null-statements”, as well two identifiers which are, if compilers only take 6
|
||||
“null-statements”, as well as two identifiers which are, if compilers only take 6
|
||||
characters, the same. It also uses <code>write(2)</code>, so not totally system
|
||||
independent.</p>
|
||||
<p>You are very much invited to pass this program through a C-beautifier (first
|
||||
|
||||
+11
-12
@@ -125,18 +125,17 @@ system-wide high-score allowing a competition between users.
|
||||
The author provided us with the following notes and new version of
|
||||
the program:
|
||||
|
||||
Here is a somewhat improved version of my tetris entry. All the
|
||||
changes are in the `popen()` at the end. Formerly a move was done
|
||||
to the HI score file which is not permitted for other users. Now
|
||||
other users can change the `HI` score file. The extra option `-m` is
|
||||
passed to sort, so that it knows that its input files are already
|
||||
sorted. The `-o` output option of sort is used instead of a
|
||||
temporary file.
|
||||
|
||||
You may also want to consider giving just the raw option to `stty`
|
||||
at the start and `-raw` at the end. This further reduces the size of
|
||||
the program, but has the possible disadvantage that the program
|
||||
can only by stopped by 'q' or by the `kill -9' command.
|
||||
> Here is a somewhat improved version of my tetris entry. All the changes are
|
||||
in the `popen(3)` at the end. Formerly a move was done to the HI score file
|
||||
which is not permitted for other users. Now other users can change the `HI`
|
||||
score file. The extra option `-m` is passed to sort, so that it knows that its
|
||||
input files are already sorted. The `-o` output option of sort is used instead
|
||||
of a temporary file.
|
||||
>
|
||||
> You may also want to consider giving just the raw option to `stty` at the
|
||||
start and `-raw` at the end. This further reduces the size of the program, but
|
||||
has the possible disadvantage that the program can only by stopped by 'q' or by
|
||||
the `kill -9` command.
|
||||
|
||||
``` <!---c-->
|
||||
long h[4];t(){h[3]-=h[3]/3000;setitimer(0,h,0);}c,d,l,v[]={(int)t,0,2},w,s,I,K
|
||||
|
||||
+12
-11
@@ -481,17 +481,18 @@ system-wide high-score allowing a competition between users.</p>
|
||||
<h3 id="additional-remarks-from-the-judges">Additional remarks from the judges:</h3>
|
||||
<p>The author provided us with the following notes and new version of
|
||||
the program:</p>
|
||||
<p>Here is a somewhat improved version of my tetris entry. All the
|
||||
changes are in the <code>popen()</code> at the end. Formerly a move was done
|
||||
to the HI score file which is not permitted for other users. Now
|
||||
other users can change the <code>HI</code> score file. The extra option <code>-m</code> is
|
||||
passed to sort, so that it knows that its input files are already
|
||||
sorted. The <code>-o</code> output option of sort is used instead of a
|
||||
temporary file.</p>
|
||||
<p>You may also want to consider giving just the raw option to <code>stty</code>
|
||||
at the start and <code>-raw</code> at the end. This further reduces the size of
|
||||
the program, but has the possible disadvantage that the program
|
||||
can only by stopped by ‘q’ or by the `kill -9’ command.</p>
|
||||
<blockquote>
|
||||
<p>Here is a somewhat improved version of my tetris entry. All the changes are
|
||||
in the <code>popen(3)</code> at the end. Formerly a move was done to the HI score file
|
||||
which is not permitted for other users. Now other users can change the <code>HI</code>
|
||||
score file. The extra option <code>-m</code> is passed to sort, so that it knows that its
|
||||
input files are already sorted. The <code>-o</code> output option of sort is used instead
|
||||
of a temporary file.</p>
|
||||
<p>You may also want to consider giving just the raw option to <code>stty</code> at the
|
||||
start and <code>-raw</code> at the end. This further reduces the size of the program, but
|
||||
has the possible disadvantage that the program can only by stopped by ‘q’ or by
|
||||
the <code>kill -9</code> command.</p>
|
||||
</blockquote>
|
||||
<pre><code> long h[4];t(){h[3]-=h[3]/3000;setitimer(0,h,0);}c,d,l,v[]={(int)t,0,2},w,s,I,K
|
||||
=0,i=276,j,k,q[276],Q[276],*n=q,*m,x=17,f[]={7,-13,-12,1,8,-11,-12,-1,9,-1,1,
|
||||
12,3,-13,-12,-1,12,-1,11,1,15,-1,13,1,18,-1,1,2,0,-12,-1,11,1,-12,1,13,10,-12,
|
||||
|
||||
Reference in new issue
Block a user