Underload interpreter
Submit
Language is selected by the extension of the file. See the list of supported languages to know the extension of your language.
Problem
Write an interpreter for the programming language Underload; you need not implement quoting with ", because no other Underload implemntation does so either. . The spec for the language is at http://esolang.org/wiki/Underload, but in short, it's a stack-based language with the current commands:
(anything with matched parens, the parens are part of the command) push whatever is between the outermostparens on the stack
: duplicate the top of stack
! pop the top of stack
^ evaluate the top of stack as an Underload program, popping it
~ swap the top two stack elements
* concat the top stack element to the end of the second stack element
S output the top stack element, popping it
a enclose the top stack element in parents
Underload is a good language for writing quines in, as it happens. It is also Turing-complete.
You do not need to handle errors; only completely perfect Underload code need be evaluated correctly.
Options
now post-mortem time, all source codes will be revealed
Sample input:_
(:aSS):aSS
Sample output:
(:aSS):aSS
Sample input:_
(:::::):(:((^:()~((:)*~^)a~*^!!()~^))~*()~^^)~(^a(*~^)*a~*()~^!()~^)a~**^!!^S
Sample output:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Sample input:_
(x)(::**)(::**)^^S
Sample output:
xxxxxxxxxxxxxxxxxxxxxxxxxxx
Ranking
Rank | User | Size | Time | Date | Statistics |
---|
1 | leonid | 30 | 0.0904 | 2008/01/24 21:02:59 | 0B / 9B / 21B |
2 | ozy4dm(unko code) | 35 | 0.1031 | 2008/01/24 17:26:34 | 2B / 9B / 24B |
3 | yvl | 35 | 0.0860 | 2008/02/11 04:02:53 | 0B / 13B / 21B |
4 | eban | 36 | 0.2086 | 2008/01/24 17:32:11 | 0B / 10B / 24B |
5 | tabasa | 608 | 0.1376 | 2008/01/21 11:05:08 | 46B / 237B / 154B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | ott(embed) | 34 | 0.0602 | 2008/01/21 01:10:55 | 0B / 12B / 22B |
2 | nuko | 34 | 0.1081 | 2008/01/21 20:15:39 | 0B / 12B / 22B |
3 | ais523(cheat) | 37 | 0.0599 | 2008/01/19 06:18:17 | 0B / ?B / ?B |
4 | ais523 | 268 | 0.3002 | 2008/02/06 06:15:25 | 0B / ?B / ?B |
5 | tails | 31 | 0.0041 | 2010/12/15 18:23:26 | 0B / 14B / 17B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | kt3k | 43 | 0.2041 | 2008/01/22 17:47:27 | 0B / 24B / 19B |
2 | hirose | 43 | 0.1640 | 2008/01/24 09:31:49 | 0B / 22B / 21B |
3 | elb | 44 | 0.2291 | 2008/01/19 18:07:34 | 0B / 21B / 23B |
4 | boo | 44 | 0.0784 | 2008/01/21 04:05:02 | 0B / 22B / 22B |
5 | zetamatta | 61 | 0.1151 | 2008/02/10 07:46:36 | 0B / 32B / 27B |
6 | Erik the Outgolfer | 47 | 0.0911 | 2020/10/24 06:09:42 | 0B / 26B / 20B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | o-cn | 70 | 0.0643 | 2009/12/06 02:13:44 | 0B / ?B / ?B |
2 | pooq | 79 | 0.4140 | 2008/10/07 00:15:09 | 0B / 42B / 37B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | pooq | 62 | 0.1594 | 2014/03/04 20:11:36 | 0B / 31B / 30B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | pooq | 66 | 12.1310 | 2009/10/11 00:29:22 | 0B / 36B / 24B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | poop | 93 | 3.0494 | 2008/01/28 17:44:25 | 0B / 68B / 21B |
2 | poop | 86 | 2.5991 | 2008/04/29 20:16:57 | 0B / 65B / 18B |
3 | tabasa | 88 | 2.7458 | 2008/02/17 14:11:11 | 0B / ?B / ?B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | pooq | 82 | 0.0080 | 2009/11/23 11:54:59 | 0B / 51B / 19B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | pooq | 74 | 0.0452 | 2012/04/02 16:52:52 | 0B / 43B / 28B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | poop | 90 | 0.0978 | 2008/01/21 20:57:47 | 0B / 55B / 23B |
2 | pooq | 89 | 0.4075 | 2008/09/15 15:04:46 | 0B / 54B / 24B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | poop | 38 | 0.1732 | 2008/01/27 01:19:58 | 0B / 16B / 22B |
2 | pooq | 37 | 0.2192 | 2008/09/15 14:00:28 | 0B / 14B / 23B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | pooq | 53 | 0.0405 | 2009/12/06 04:19:57 | 2B / 25B / 25B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | 51b(embed) | 61 | 0.0537 | 2008/01/19 08:19:12 | 0B / 35B / 26B |
2 | ozy4dm(hidoi) | 61 | 0.0690 | 2008/01/22 22:32:03 | 3B / 27B / 31B |
3 | 51b | 65 | 0.0919 | 2008/01/19 08:16:22 | 0B / 37B / 28B |
4 | hinoe(mugoi) | 325 | 0.0626 | 2008/02/05 06:18:07 | 0B / 141B / 184B |
5 | %20(exec) | 60 | 0.0128 | 2016/08/21 08:27:53 | 0B / 31B / 26B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | 51b | 100 | 0.0825 | 2008/01/26 17:39:05 | 0B / 68B / 29B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | ksk | 83 | 0.2263 | 2008/01/26 15:48:33 | 0B / 50B / 32B |
2 | m.ukai | 95 | 0.1279 | 2008/01/25 19:48:19 | 0B / 55B / 40B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | D | 137 | 0.0766 | 2008/01/29 10:42:52 | 0B / 92B / 39B |
2 | yt | 145 | 0.0587 | 2008/02/15 13:50:18 | 0B / 94B / 47B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | uru | 127 | 0.1470 | 2009/07/09 23:52:13 | 0B / 79B / 38B |
2 | pooq | 135 | 0.0506 | 2009/01/25 07:50:11 | 0B / 89B / 36B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | pooq | 67 | 0.0473 | 2009/11/14 03:02:04 | 0B / 40B / 25B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | pooq | 96 | 0.6409 | 2009/02/25 23:32:54 | 0B / 59B / 37B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | eban | 46 | 0.0454 | 2008/01/24 17:27:42 | 0B / 16B / 29B |
2 | nn | 37 | 0.0315 | 2009/09/05 15:08:29 | 0B / 12B / 25B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | eban | 62 | 0.0598 | 2008/01/20 04:36:27 | 0B / 23B / 34B |
2 | ehird | 167 | 0.0438 | 2008/01/19 06:49:12 | 1B / ?B / ?B |
3 | ehird(CHEAT) | 167 | 0.0166 | 2008/01/19 06:49:48 | 1B / ?B / ?B |
4 | ais523(genuine) | 260 | 0.4776 | 2008/02/11 21:02:26 | 0B / ?B / ?B |
5 | eban | 57 | 0.0113 | 2011/01/07 16:52:06 | 0B / 23B / 29B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | pooq | 28 | 0.0327 | 2014/12/10 19:10:57 | 0B / 13B / 15B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | pooq | 70 | 3.6087 | 2008/05/31 15:34:12 | 0B / 36B / 34B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | nuko | 108 | 0.0582 | 2008/01/23 19:10:23 | 0B / 0B / 108B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | whio | 12 | 0.2567 | 2017/02/04 07:08:08 | 6B / 5B / 1B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | nn | 29 | 0.0707 | 2009/12/13 12:33:32 | 3B / 18B / 5B |
2 | pla | 39 | 0.0715 | 2009/12/11 01:11:06 | 3B / 21B / 14B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | leonid | 22 | 0.1775 | 2008/01/24 22:10:30 | 0B / 11B / 10B |
2 | tabasa | 88 | 0.1564 | 2008/01/24 10:46:37 | 7B / 47B / 25B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | murky-satyr | 53 | 10.3199 | 2011/02/10 18:09:48 | 0B / 32B / 19B |
2 | pooq | 54 | 10.3524 | 2011/02/10 16:58:55 | 0B / 34B / 19B |
Language Ranking_
Rank | Lang | User | Size | Score |
1 | gs2 | whio | 12 | 10000 |
2 | GolfScript | leonid | 20 | 6000 |
3 | goruby | leonid | 22 | 5454 |
4 | FlogScript | zzo38(embed) | 22 | 5454 |
5 | K | teebee(pooq) | 25 | 4800 |
6 | jq | pooq | 28 | 4285 |
7 | Vim | nn | 29 | 4137 |
8 | Ruby | leonid | 30 | 4000 |
9 | Perl | tails | 31 | 3870 |
10 | J | pooq | 37 | 3243 |
11 | AWK | nn | 37 | 3243 |
12 | Burlesque | AndoDaan | 38 | 3157 |
13 | Python | kt3k | 43 | 2790 |
14 | Python3 | Erik the Outgolfer | 45 | 2666 |
15 | Groovy | murky-satyr | 51 | 2352 |
16 | A+ | pooq | 53 | 2264 |
17 | Scala | murky-satyr | 53 | 2264 |
18 | sed | eban | 57 | 2105 |
19 | Postscript | yshl(embed)(bin) | 59 | 2033 |
20 | Lua | murky-satyr | 60 | 2000 |
21 | C | %20(exec) | 60 | 2000 |
22 | Pike | pooq | 62 | 1935 |
23 | JavaScript | FizzyTea | 64 | 1875 |
24 | Arc | pooq | 66 | 1818 |
25 | Haskell | notogawa(embed) | 67 | 1791 |
26 | Curry | pooq | 67 | 1791 |
27 | R | pooq | 70 | 1714 |
28 | PHP | o-cn | 70 | 1714 |
29 | Icon | pooq | 74 | 1621 |
30 | Common LISP | kozima(embed) | 77 | 1558 |
31 | Tcl | pooq | 82 | 1463 |
32 | OCaml | ksk | 83 | 1445 |
33 | Io | poop | 86 | 1395 |
34 | BASIC | pooq | 89 | 1348 |
35 | Smalltalk | murky-satyr | 93 | 1290 |
36 | Maxima | pooq | 96 | 1250 |
37 | Scheme | murky-satyr | 98 | 1224 |
38 | D | 51b | 100 | 1200 |
39 | Brainfuck | nuko | 108 | 1111 |
40 | Pascal | uru | 127 | 944 |
41 | Ada | D | 137 | 875 |
return to the top page