- Reference
Wikipedia - Malbolge
Malbolge 言語仕様
http://www.antwon.com/other/malbolge/malbolge.txt
Malbolge Interpreter
http://www.lscheffer.com/malbolge_interp.html
- via
ロベールの小部屋 - 最凶言語 Malbolge
http://d.hatena.ne.jp/Robe/20060824
- C言語
http://www0.us.ioccc.org/1988/westley.c
http://www0.us.ioccc.org/2000/bmeyer.c
http://www0.us.ioccc.org/2000/dhyang.c
- Malbolgeによるプログラム (99 Bottles of Beer | Language Malbolge)
http://www.99-bottles-of-beer.net/language-malbolge-995.html
- Whitespace によるプログラム
http://compsoc.dur.ac.uk/whitespace/hworld.ws
- 追記 [2006-09-19]
swk's log - 2006-09-16 - 読みにくいソースコード
http://www.kagami.org/diary/2006-09-16-1.html
ioccc - 1987 - korn.c
http://www0.us.ioccc.org/1987/korn.c
- Reference
The International Obfuscated C Code Contest
http://www0.us.ioccc.org/main.html
ロベールの小部屋 - 最凶言語 Malbolge
http://d.hatena.ne.jp/Robe/20060824
Wikipedia - Chef_programming_language
Wikipedia - Shakespeare_programming_language
Wikipedia - Malbolge
- via
スラッシュドット ジャパン | おすすめのソースは?
http://slashdot.jp/askslashdot/article.pl?sid=06/09/03/0721254
- Valladolid Programming Contest Problem Set
http://online-judge.uva.es/problemset/
スペインのValladolid(バリャドリード)大学が提供するOnline Judge.
問題を解いてプログラムをメールで送るとプログラムが正しいかどうか判定して返してくれる.
- Valladolid Online Judge - Contest Hosting Service
http://acm.uva.es/contest/
スペインのValladolid(バリャドリード)大学が提供するプログラミングコンテスト.
- Ural State University Problem Set
http://acm.timus.ru/
- Ural State University Contest
http://acm.timus.ru/contest.aspx
- International Problem Solving Contest
http://ipsc.ksp.sk/
- 参考になる本
本: アルゴリズムC++
本: C言語による最新アルゴリズム事典
- Reference
京都大学 情報学研究科 通信情報システム専攻 - 論理回路分野 (岩間研究室) - Hiroki YANAGISAWA - ACM/ICPC対策室 - Topics - 練習
http://www.lab2.kuis.kyoto-u.ac.jp/~yanagis/acmicpc/topic/practice.html
はてなダイアリー - 純粋関数型雑記帳
http://d.hatena.ne.jp/tanakh/
Rubyist Magazine - 0003号 - ウバベストシーズン
http://jp.rubyist.net/magazine/?0003-uva
- オーバーロード誘導 (Overload Induction)
可能な限り多くのメソッドに対しオーバーロードを誘導.
難読化,最適化,サイズ縮小に効果を発揮.
- Reference
mixiコミュニティ - プログラムの難読化
http://mixi.jp/view_community.pl?id=103670
AG-TECH - オーバーロード誘導 (Overload Induction)
http://www.agtech.co.jp/products/preemptive/dasho/overload_induction.html
- Reference
UNIX History
http://www.levenez.com/unix/
Windows History
http://www.levenez.com/windows/
Computer Languages History
http://www.levenez.com/lang/
- Summary
絵を動かすために,絵でプログラムを作るツール
絵でプログラムを表現するので,難しいことを覚えなくてもプログラミングの楽しさが分かる.
- Reference
ビジュアルプログラム言語 Visucuit
http://www.viscuit.com/
VistuitWiki
http://yami.viscuit.com/
- via
たまにっき。 - 2005-01-12 - ビジュアルプログラム言語 Viscuit
http://www.oikaze.com/~tamada/Diary/2005-01-12.html#2005-01-12-6
- Summary

- Reference
本: プログラミングテクニック—UNIXコマンドのソースコードにみる実践プログラミング手法 UNIX MAGAZINE COLLECTION
- via
TokuLog! - 2004-01-21
http://tokuhirom.dnsalias.org/~tokuhirom/cl/2004-01-21-3.html
- Summary
アメリカのプログラミングコンテストサイト.
Java, C++, C#, Visual Basic .NET に加えて Perl が使用可能になる可能性がある.
- Reference
TopCoder
http://www.topcoder.com/
- via
INTERNET Watch - 2004-12-22
http://internet.watch.impress.co.jp/cda/news/2004/12/22/5908.html
- Summary
高級言語とコードジェネレータの間をつなぐ言語
- Reference
C-- Home
http://www.cminusminus.org/
- via
www.textfile.org - 2004-12-15
http://www.hyuki.com/tf/20041215234202.html
- Summary
`Just Another Perl Hacker' という文字列を出力するプログラムを難解かつエレガントに作るかを競う.
- Reference
CPAN - JAPH
http://www.cpan.org/misc/japh
- via
TokuLog! - 2004-12-17
http://tokuhirom.dnsalias.org/~tokuhirom/cl/2004-12-17.html#2004-12-17-2
- Summary
わかりにくいC言語のプログラムを書くコンテスト
- Reference
The International Obfuscated C Code Contest
http://www.ioccc.org/
- Reference
C/C++ Reference
http://www.cppreference.com/
- Summary
Java の文法と機能をベースとしたスクリプト言語.
- 特徴
コンパイルが不要
動的な型付けが可能
文法上の制限を緩和
通常のJavaアプリケーション内でGroovyスクリプトを実行可能
シェルインタプリタを提供
- Reference
Groovy
http://groovy.codehaus.org/
@IT - Java Solution - Groovyに触ってみよう
http://www.atmarkit.co.jp/fjava/rensai3/devworks05/devworks05_1.html
- Reference
高林哲のWebサイト - wxWidgets でクロスプラットフォーム GUIアプリを作ろう
http://namazu.org/~satoru/pub/uu-2004-08/
- via
cl.pocari.org - 2004-10-30
http://cl.pocari.org/2004-10.php#2004-10-30-4
- Summary
プログラミング言語の一つ.
Urban Mullerがコンパイラがなるべく小さくなる言語として考案した.
実行可能な命令は8つのみ.
- 言語仕様
> ポインタをインクリメントする.
< ポインタをデクリメントする.
+ ポインタが指す値をインクリメントする.
- ポインタが指す値をデクリメントする.
. ポインタが指す値を出力する.
, 1バイトを入力してポインタが指す値に代入する.
[ ポインタが指す値が0なら、対応する ] までジャンプする.
] ポインタが指す値が0でないなら、対応する [ にジャンプする.
- Brainf*ckでHello world
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
- Brainf*ckでHello world その2
>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-]<.>+++++++++++[<+++++>-]<.>++++++++[<+++>-]<.+++.------.--------.[-]>++++++++[<++++>-]<+.[-]++++++++++.
- Reference
Wikipedia - Brainfuck
Wikipedia - Hello World - Brainfuckでの例
http://ja.wikipedia.org/wiki/Hello_world#Brainfuck.E3.81.A7.E3.81.AE.E4.BE.8B
kMonos.NET - いろんなげんご @ 人工言語世界 - Brainf*ck
http://www.kmonos.net/alang/etc/brainfuck.php
- via
TokuLog! - 2004-10-15
http://tokuhirom.dnsalias.org/~tokuhirom/cl/2004-10-15.html#2004-10-15-4
- Summary
日本語プログラム言語「ひまわり」の後継
- 改善点
・句読点による区切りが不要に
・オブジェクト指向っぽいことができる
・インデントによる構造化プログラミング
・配布実行ファイルのサイズ大幅減
・実行速度が10倍以上高速に
- Reference
日本語プログラム言語「ひまわり」
http://hima.chu.jp/
日本語プログラム言語「なでしこ」
http://nadesi.com/
- via
窓の杜 - 2004-10-14
http://www.forest.impress.co.jp/article/2004/10/14/nadesiko.html
- Summary
Windows9x/NT/2000/XP対応のインタプリタ言語
- O2とは
個人では開発が難しかったオンラインソフトのためのロビー,マッチング,ユーザ認証を代行するシステム
HSPと連携させることでオンラインソフトを容易に作成可能.
- Reference
Onion Software - Hot Soup Processor
http://www.onionsoft.net/hsp/
Onion Software O2
http://o2.zener.co.jp/
- Summary
・バグは無くならない
・バグを生んだ他人を責めない
・バグを生んでも,見つけてすぐに直せばいい
・バグを見つけやすいように色々な方策を講じよう
ほとんどのバグはAPIの仕様の理解不足から生じる.
(ココでのAPIとは「自分以外の人が作ったモノ全て」)
- APIの例
・OSのシステムコール
・低レベルなライブラリ(libcなど)
・X Window Systemライブラリ(Xlib, Xt)
・GNOMEライブラリ(glib, GDK, GTK+, gnome-lib, etc.)
・Win32 API,(Windows)COM
・libapr, libapr-util
- 回避策
・マニュアルを良く読む
・馴染みが薄いAPIの場合,そのAPIの動作だけを確認する小さなコードを書く
・自分の書くコードでは,assert(3)で条件を明示する
・自分の書くコードでは,外部に見せる関数(モジュール境界)に極度に気を使う
・公開ヘッダにきちんとコメントをつける
・公開ヘッダは保守的にする(仕様はあまり変えず,公開部分も最小限にする)
- 抜本的な解決策
・言語仕様から見直す (ポインタの無い言語にする,など)
・他人の作ったAPIは使わない
・枯れて良く知っている環境に安住して,そこから離れない(POSIXの環境から離れない,など)
- 具体的な例
・そのネットワークAPIはブロックするのかしないのか?
・そのAPIはスレッドセーフか否か?
・APIが返すメモリの所有者は?
・APIに渡すメモリの所有者は?
・(設計に問題があるにせよ)現実的には,呼び出し順序が意味を持つAPI群は多いので,そのコンテキスト依存性は?
- Reference
Ariel Networks - バグとの付き合い方
http://dev.ariel-networks.com/blog/?itemid=347
Ariel Networks - 失敗を恐れない文化 - 産み落とした多くのバグへの鎮魂歌 -
http://dev.ariel-networks.com/blog/?itemid=50
- 4GLとは
業務に必要な簡易ツールがどうしても必要なとき,
社内にプログラマーがいれば事足りるのですが,
そうそう社内にソフト開発ができる人材がいるわけではありません.
そこで登場したのが,スクリプターと呼ばれる簡易プログラム言語です.
これならさほど難しくなく目的のツールを開発できますので,
若干の社員教育をすれば,誰もが簡単にちょっとしたツールを
作れるようになります.
しかしプログラム業界は既にオブジェクト指向やVisual的な開発環境が
主流になって複雑化しており,従来のプログラム言語やスクリプターを
さらに簡単かつ視覚的編集が行えるように進化させる必要がありました.
そこで登場したのが第4世代言語です.ウィザード形式で視覚的な
プログラミングを行うことによって生産効率を上げたものです.
極論ではありますが,マウス操作だけでツール開発を行い,
誰もが簡単に短時間で目的のツールを作成できるようにという構想でもあります.
ゲーム製作に例えると,○○ゲームツクールなどに当てはまる.
- 一覧
| 第1世代言語 | 機械語 |
| 第2世代言語 | アセンブリ語 |
| 第3世代言語 | C言語,Fortran,COBOL,Java 等 |
| 第4世代言語 | Visual Basic,Power Builder,Delphi,Natural,Uniface 等 |
- Summary
次世代C言語
C#の拡張言語
- Reference
Microsoft Research - Comega
http://research.microsoft.com/Comega/
- via
Tentative Name. 2004-08-24
http://members.jcom.home.ne.jp/sarasiru/nikki.html#2004_8_24