memo.xight.org

Home > Changelogメモ > プログラミング > 1ページ目 (全2ページ)
ChangeLog 最新ページ / カテゴリ最新ページ / 1 2 次ページ / 1ページ目 (全2ページ)
2008-12 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2006-09-04 Mon

読みにくいソースコード

- 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

2005-02-14 Mon

プログラミング・コンテストなど

- 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

2005-02-07 Mon

プログラムの難読化

- オーバーロード誘導 (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

2005-01-13 Thu

Viscuit - ビスケット

- 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

2004-12-26 Sun

TopCoder

- 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

2004-12-20 Mon

C-- (C minus minus)

- Summary

高級言語とコードジェネレータの間をつなぐ言語

- Reference
  C-- Home
  http://www.cminusminus.org/
- via
  www.textfile.org - 2004-12-15
  http://www.hyuki.com/tf/20041215234202.html

2004-12-19 Sun

JAPH

- 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

2004-12-19 Sun

IOCCC - The International Obfuscated C Code Contest

- Summary
  わかりにくいC言語のプログラムを書くコンテスト
- Reference
  The International Obfuscated C Code Contest
  http://www.ioccc.org/

2004-11-28 Sun

Groovy

- 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

2004-10-30 Sat

wxWidgets でクロスプラットフォーム GUIアプリを作ろう

- 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

2004-10-20 Wed

Brainf*ck

- 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

2004-10-15 Fri

なでしこ

- 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

2004-10-04 Mon

HSP - Hot Soup Processor

- 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/

2004-09-22 Wed

バグとの付き合い方

- 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

2004-09-07 Tue

4th Generation Language (4GL) - 第4世代言語

- 4GLとは

業務に必要な簡易ツールがどうしても必要なとき,
社内にプログラマーがいれば事足りるのですが,
そうそう社内にソフト開発ができる人材がいるわけではありません.
そこで登場したのが,スクリプターと呼ばれる簡易プログラム言語です.
これならさほど難しくなく目的のツールを開発できますので,
若干の社員教育をすれば,誰もが簡単にちょっとしたツールを
作れるようになります.
しかしプログラム業界は既にオブジェクト指向やVisual的な開発環境が
主流になって複雑化しており,従来のプログラム言語やスクリプターを
さらに簡単かつ視覚的編集が行えるように進化させる必要がありました.
そこで登場したのが第4世代言語です.ウィザード形式で視覚的な
プログラミングを行うことによって生産効率を上げたものです.
極論ではありますが,マウス操作だけでツール開発を行い,
誰もが簡単に短時間で目的のツールを作成できるようにという構想でもあります.


  ゲーム製作に例えると,○○ゲームツクールなどに当てはまる.

- 一覧

第1世代言語 機械語
第2世代言語 アセンブリ語
第3世代言語 C言語,Fortran,COBOL,Java 等
第4世代言語 Visual Basic,Power Builder,Delphi,Natural,Uniface
- Reference
  IT用語辞典 - 第4世代言語 (4GL)
  http://e-words.jp/w/E7ACAC4E4B896E4BBA3E8A880E8AA9E.html
  真・コンピュータ用語辞典 - 4GL
  http://www.geocities.co.jp/SiliconValley/5634/t82D3_0004.html#1113
  NAVER - 知識plus - 第四世代言語(4GL)とは
  http://plus.naver.co.jp/browse/db_detail.php?dir_id=1&docid=17606
  IBM - developerWorks - Linux - これからのオープン・ソース時代におけるCOBOLの位置付け
  http://www-6.ibm.com/jp/developerworks/linux/000929/j_cobol.html
  Beacon IT - Natural
  http://www.beacon-it.co.jp/products/pro_serv/deve/natural/index.shtml
  日本コンピュウェア - Uniface
  http://www.compuware.co.jp/products/uniface/uniface.html

2004-08-29 Sun

- 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

2008-12 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
最終更新時間: 2008-12-02 10:52

Color Reference

ChangeLogを検索
携帯電話からアクセス!

カテゴリ

最近の話題

リンク

過去ログ

Google

QR Code

Since
2002-11-28
Update
2008-12-02 10:52
Copyright © 2005 xight.org All Rights Reserved.