LISP, COBOL, Fortran, Pascal,無聊的時候都有拿來玩過,不求精,有 Hello World 就好。
在軍中有幸見識到迪吉多 1988 年出產的 VAX6000 ,還用它寫過 PL/I
這台高貴不貴的電冰箱…不是,這台性能強大的工作站,可是當資訊兵 7、8 個月天天在碰的東西。
第一次看到兩台跟 UPS 一樣大的硬碟,驚訝程度可想而知...它的腳本語言也是十分怪異,有點像 bash 混合 MSDOS。不過工作需求,我竟然還把它玩精了。
這玩意很 high,處理個 3MB 的 txt 檔,包括解密,比對項目 db 到印出報表要 8 小時,常常整天龜在資訊室就是弄這 shit。
後來一個不爽,用 .NET 改寫整個 flow 才花 15 秒就做完原本三天份的量,剩下 7 小時 59 分鐘就拿來打茫,這又是後話了...
啊啊!! 離題太遠,回到 Brain Fuck。這玩意超級恐怖,果然不負其名,光是寫個小小的 Hi! Matt 就快把我的 Brain 給 Fuck 了。不過它的優點是很原始,很野性,指標和位址的移動,有種 asm 的直觀爽感,而且符合圖靈完全思維…閒話不多說,來看 code:
+++++ +++++ [ > +++ > +++++ ++ > +++++ ++++ > +++++ +++++ > +++++ +++++ + <<<<< - ] >> ++. >> +++++. <<< +++. >+. < +++++ +. >>> ++++. <<< ----- --. > ++++. > +++++ ++. >> +++++ +. . <<<< +.
連成一條龍也不是不行,不過那個太刻意 fuck 了,這樣就夠 fuck 。
換成 c code:
unsigned char arr[30000] = {0}; *arr = 10; while (*arr) { *(arr + 1) += 3; *(arr + 2) += 7; *(arr + 3) += 9; *(arr + 4) += 10; *(arr + 5) += 11; *arr-=1; } putchar (*(arr + 2) += 2); putchar ((*(arr + 4) += 5)); putchar ((*(arr + 1) += 3)); putchar (++*(arr + 2)); putchar ((*(arr + 1) += 6)); putchar ((*(arr + 4) += 4)); putchar ((*(arr + 1) -= 7)); putchar ((*(arr + 2) += 4)); putchar ((*(arr + 3) += 7)); putchar ((*(arr + 5) += 6)); putchar (*(arr + 5)); putchar ((*(arr + 1) += 1));
或許你會問:有 compiler 嗎?
別說 compiler,連 IDE 都有!!
可在這邊下載 4mhz.de/bfdev.html
最後還是想說一句…雖然忙,該玩的東西還是要玩一下的...
沒有留言:
張貼留言