# Say Hello to the Pioneers of Computer Science

## CJam, 230117115114113110107 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!

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, 10399 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, 94928985 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