Say Hello to the Pioneers of Computer Science
CJam, 230 117 115 114 113 110 107 106 bytes * 13 = 1378
23)3*c11(2#)c111(((c3*))))22 2*c32c23 3*c3))$(113))c1$)))2$)2$(32c3)))$(3)$))1($)1($)3))$)1($)1$(12$(((33c
Test it here.
I chose Edsger Dijkstra
, born 1930, which gives me c#2&$1>b()* 3
(whom I really just chose because he was the first one I found whose name yielded useful characters for CJam; I've checked a dozen names since and none looked as promising).
The code basically just builds the ASCII codes using 1
, 2
, 3
, *
, #
(exponentiation) and (
, )
(decrement, increment) and converts them to a character with c
. To save some characters I can sometimes copy an earlier character with $
(0$
copies the top stack element, 1$
copies the second-to-top stack element and so on).
Here is the breakdown of the code into characters (this is also runnable):
23)3*c "(23+1)*3 -> 72 -> H";
11(2#)c "(11-1)^2+1 -> 101 -> e";
111(((c "111-3 -> 108 -> l";
3*) "Turn l into string lll and split off the third l.";
))) "l+3 -> o";
22 2*c "22*2 -> 44 -> ,";
32c "32 -> Space";
23 3*c "23*3 -> 69 -> E";
3))$( "e-1 -> d";
113))c "113+2 -> 115 -> s";
1$))) "d+3 -> g";
2$) "d+1 -> e";
2$( "s+1 -> r";
32c "32 -> Space";
3)))$( "E-1 -> D";
3)$)) "g+2 -> i";
1($) "i+1 -> j";
1($) "j+1 -> k";
3))$) "r+1 -> s";
1($) "s+1 -> t";
1$( "s-1 -> r";
12$((( "d-3 -> a";
33c "33 -> !";
Marbelous, 83 bytes * 10 = 830
I've chosen R Kowalski, 1941
which allows me to use: {It9A+6=53
++63
A66333696A5A696A6A69
A5633A..+3+6+3+9++
A56A+I
AA+6
=3
3653666665
+I+I+6+6+A++
This one is a bit more complex than the old answer (below) since many marbles go through multiple devices, all in all most marble just have a few things added to them before being printed though. Because I didn't have subtraction or low numerals, the lower ascii codes had to be formed by adding by merging two high value marbles, since this results in addition modulo. (I've used =3
as a deflector since it pushes every marble not equal to 3 to the right and looks like a cute cat)
output:
Hello, R Kowalski!
old answer:
Marbelous, 113 * 17 = 1921
Marbelous does okay here, since ever marble that falls off the board gets printed, because of its 2D nature though, it needs a few numerals + some arithmetic to not let the borad get too huge.
I've chosen Philip D. Estridge, 1937
who yields u./26EiSj9:8*-+
as the available character set. The characters actually used are .+-245689E
22
6865
4965686866282252686968696E2244666E65686422456E6E6E6964
--..+4+4+9+4-2-2....+4..+2-2..+9..-4+4..-2..+5+6+4
The board is pretty simple, the first 3 rows are literals, ever group of two is a hexadecimal value, the fourth row are arithmetic operations to form the ascii codes that could not be written explicitly because of the limited character sets.
output:
Hello, Philip Donald Estridge!
You can try it out here!
I'll now look for a possible better candidate, since it looks like marbelous might actually be competitive here.
Insomnia, 103 99 98 * 8 = 784
George Boole, 1815
All 5 programs below have the same length (98) and same output.
oyoooyLyyyyoyLqoyyoyoLL*yyoLqy|oLq*yLyoyyoLqoq*yLyyLoyooLyyy*qL|yqoLq**LoooyoLqy|qLLo*qyLq*oq|L|oL
oyoooyLyyyyoyLqoyyoyoLLy*yyoLq*oqL*LqyyyoyLyooyyoLyyLoyooLyyyL*q|qoL|q*LoooyoLqyq*LLo*qyLq*o|qL|oL
oyoooyLyyyyoyLqoyyoyoLL*yyoLqy|oLq*yLyoyyoLqoq*yLyyLoyooLyyyL*qq|oL|yq*LoooyoLqyq*LLo*qyLq*o|qL|oL
oyoooyLyyyyoyLqoyyoyoLLy*yyoLq*oqL*LqyyyoyLyooyyoLyyLoyooLyyyL*q|qoL|q*LoooyoLqyq*LL|qyyLy*qq*L|oL
oyoooyLyyyyoyLqoyyoyoLL*yyoLq|oLq*yLyoyyoLyq|oLq|yq*LqooLoyyoyLyLoyyoyLoooyoLo|q|LLq|yyLooooyoLqyL
Prints Hello, George Boole!
Insomnia, 103 * 6 = 618 (probably optimal and unique)
If G Boole
(George Boole, 1815) is acceptable...
ooyoyoLoyyoyoyyLyoyoooLLoyooyyLoyyyoLooyoyoooooLyoyyoLoyoyyyoLooyyyooLoyoyooooLLyyooyoyoLyoyoooLoyooooL
Prints Hello, G Boole!
Insomnia, 94 92 89 85 83 * 10 = 830
Kurt Godel, 1906.
kukuzkzjzkuxkujx{rxjkjxzjukukzj{ukukzjkrxujzujk{rxujjku{jxuukujrxzjuxjk{urxjxukzj{j
Prints Hello, Kurt Godel!
I wrote a program to search for the solution. My second version of the program should be closer to optimal than my first version.
As per @Martin Büttner's nitpick (100 92 88 85 characters, same set of characters):
kukuzkzjzkuxkujx{rxjkjxzjukukzj{ukukzjkrxujzujk{rxujju{jxuukujrxuxjzxjk{urxjxjxukzj{j
Prints Hello, Kurt Goedel!
Interpreter