Update 1988 winning entries' README.md files

Format and typo fixes.
This commit is contained in:
Cody Boone Ferguson committed 2023-04-14 06:19:50 -07:00
1 parent 95f384ec3f
commit 15787fbdd3
7 files changed
+159 -98

No files matched your search

+15 -9
View File
@@ -1,11 +1,11 @@
## Best abuse of system calls
Paul Dale
University of Queensland
Computer Science Dept
Dept of Computer Science
Uni of Qld, 4067
Australia
Paul Dale
University of Queensland
Computer Science Dept
Dept of Computer Science
Uni of Qld, 4067
Australia
## To build:
@@ -56,9 +56,10 @@ Thank you Cody for your assistance!
## Try:
./dale hello world
./dale these files are in this directory: *
```sh
./dale hello world
./dale these files are in this directory: *
```
NOTE: in linux it might happen that core dumps are created when running this
entry even though it works fine.
@@ -71,6 +72,11 @@ system calls.
NOTE: This program assumes the ASCII character set is being used.
## Author's remarks:
No remarks were provided by the author.
## Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
+23 -10
View File
@@ -1,19 +1,23 @@
# Best visuals
Mark Isaak
Imagen Corporation
2650 San Tomas Expy.
Santa Clara, CA
95052-8101
USA
Mark Isaak
Imagen Corporation
2650 San Tomas Expy.
Santa Clara, CA
95052-8101
USA
## To build:
make all
```sh
make all
```
## To run:
./isaak
```sh
./isaak
```
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this to work for
modern systems. The problem was that the important function, a redefinition of
@@ -25,7 +29,9 @@ alternative version. Thank you Cody for your assistance!
The original version of this code is in [isaak.alt.c](isaak.alt.c).
The original entry starts with the line:
```c
main(){};
```
This works on some systems. Why? Note that `#include <stdio.h>` is given on
the last line. Why is this needed? Note the unusual calls to sprintf.
@@ -50,14 +56,21 @@ due to the fact that BSD style systems have an sprintf() that returns a `char *`
Due to the above problems, we placed the output of this program in the file:
isaak.encode. To read this file do:
uudecode < isaak.encode
cat isaak.output
```sh
uudecode < isaak.encode
cat isaak.output
```
But since Cody fixed it this is not strictly necessary. See the
[isaak.alt.c](isaak.alt.c) for the original source.
FYI: We are likely to be more strict about portability in the future.
## Author's remarks:
No remarks were provided by the author.
## Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
+24 -14
View File
@@ -1,15 +1,17 @@
## Best small program
Maarten Litmaath
Free University (VU) Amsterdam
Department of computer science
Uilenstede 72
1183 AK Amstelveen
The Netherlands
Maarten Litmaath
Free University (VU) Amsterdam
Department of computer science
Uilenstede 72
1183 AK Amstelveen
The Netherlands
## Try:
./litmaath eschew obfuscation
```sh
./litmaath eschew obfuscation
```
## Judges' remarks:
@@ -17,9 +19,10 @@
Note the unusual structure:
while (<condition>)
;
```c
while (<condition>)
;
```
Did you notice that the body is empty?
@@ -30,15 +33,22 @@ could make the body of the 'while' loop an 'fprintf' with interesting
variables like:
fprintf(stderr,
"argv=%lo *argv=%lo **argv=%c argv[1]=%lo *argv[1]=%c argc=%d\n",
(long) argv, (long) *argv, *argv && **argv ? **argv : '@',
(long) argv[1], argv[1] && *argv[1] ? *argv[1] : '@', argc);
```c
fprintf(stderr,
"argv=%lo *argv=%lo **argv=%c argv[1]=%lo *argv[1]=%c argc=%d\n",
(long) argv, (long) *argv, *argv && **argv ? **argv : '@',
(long) argv[1], argv[1] && *argv[1] ? *argv[1] : '@', argc);
```
Furthermore, it's interesting to note that only two variables are
used to achieve everything.
## Author's remarks:
No remarks were provided by the author.
## Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
+15 -9
View File
@@ -1,17 +1,18 @@
## Least likely to compile successfully
Ian Phillipps
Cambridge Consultants Ltd
Science Park
Milton Road
Cambridge CB4 4DW
England
Ian Phillipps
Cambridge Consultants Ltd
Science Park
Milton Road
Cambridge CB4 4DW
England
## To build:
make all
```sh
make all
```
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this for modern
@@ -23,7 +24,7 @@ be `char **` :-) ) with the correct args it now works. Thank you Cody for your
assistance!
## Judges' remarks
## Judges' remarks:
Compile and run without parameters.
@@ -33,6 +34,11 @@ and thus represents a new departure in text compression standards.
The judges thought that this program looked like what you would get
by pounding on the keys of an old typewriter at random.
## Author's remarks:
No remarks were provided by the author.
## Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
+18 -9
View File
@@ -1,29 +1,38 @@
## Most useful Obfuscated C program
Amperif Corporation
9232 Eton Avenue
Chatsworth, CA
91311
U.S.A.
Amperif Corporation
9232 Eton Avenue
Chatsworth, CA
91311
U.S.A.
## To build:
make all
```sh
make all
```
## Try:
./reddy
char *(*(fun[16])();
```sh
./reddy
char *(*(fun[16])();
```
## Judges' remarks
## Judges' remarks:
This is a somewhat restricted version of a useful program that has been
posted to Usenet. What is unusual is what it is able to do so much
in such little space.
## Author's remarks:
No remarks were provided by the author.
## Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
+33 -21
View File
@@ -1,45 +1,57 @@
## Best abuse of C constructs
Arch D. Robison
University of Illinois at Urbana-Champaign
1304 W. Springfield Ave.
Urbana IL
61801
USA
Arch D. Robison
University of Illinois at Urbana-Champaign
1304 W. Springfield Ave.
Urbana IL
61801
USA
## To build:
make all
```sh
make all
```
## Try:
./robison 80 10
./robison 40 16
```sh
./robison 80 10
./robison 40 16
```
The first and second parameters are optional. You might also try:
./robison 80 2 <--- can you find the bug?
./robison 80 -246
```sh
./robison 80 2 # <--- can you find the bug?
./robison 80 -246
```
The author says:
> This program shows that C has many unnecessary constructs, in fact
> only "while","--", and ">=" are required. (The two assignments at
> the beginning could be avoided if "atoi" was rewritten with this
> new paradigm.) Note that the lack of both the controversial "goto"
> and assignment statements makes the meaning crystal clear. The current
> ANSI committee should look into this practical simplification of C.
## Judges' remarks:
The following might make an interesting benchmark:
./robison 100
```sh
./robison 100
```
[Amdahl 5890-300E with System V cc: 8.40 seconds]
We suggest that you C pre-process and perhaps C-beautify this program.
All is not what it may appear to be in this program. Why does a whi1e
All is not what it may appear to be in this program. Why does a `whi1e`
not take a while to execute?
## Author's remarks:
This program shows that C has many unnecessary constructs, in fact
only "while","--", and ">=" are required. (The two assignments at
the beginning could be avoided if "atoi" was rewritten with this
new paradigm.) Note that the lack of both the controversial "goto"
and assignment statements makes the meaning crystal clear. The current
ANSI committee should look into this practical simplification of C.
## Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
+31 -26
View File
@@ -8,8 +8,9 @@ Greece
## To build:
make all
```sh
make all
```
and then type a C program into followed by EOF (usually `^D`, ctrl-d).
@@ -19,23 +20,25 @@ Thank you Cody for your assistance!
## Try:
make clobber all
main()
{
printf("Hello world\n");
}
^D
./spinellis
```sh
make clobber all
main()
{
printf("Hello world\n");
}
^D
./spinellis
make clobber all
int main()
{
int i;
for (i = 0; i < 5; ++i)
printf("%d\n", i);
}
^D
./spinellis
make clobber all
int main()
{
int i;
for (i = 0; i < 5; ++i)
printf("%d\n", i);
}
^D
./spinellis
```
NOTE: you need to make clobber first for this entry to work right.
@@ -43,15 +46,17 @@ NOTE: you need to make clobber first for this entry to work right.
For clang try the alt code like:
make clobber alt
#include <stdio.h>
main()
{
puts("Hello world\n");
}
^D
./spinellis
```sh
make clobber alt
#include <stdio.h>
main()
{
puts("Hello world\n");
}
^D
./spinellis
```
NOTE: you need to make clobber first for this entry to work right.