*プログラミング用語解説 [#yad1e869] #contents **表記に用いられている記号 [#b5b871d4] [関]:関連した語句を掲載。~ [類]:類義/類似した語句を掲載。~ [反]:対義語を掲載。~ [n]:複数の意味がある場合、角括弧内に数字を入れて、よく使われている、あるいはより一般的であると考えられるものから順に解説している。 **A [#qed84927] -&aname(android){Android(あんどろいど)};~ [1] Googleが旗振り役を務めて進行する、次世代携帯電話用ソフトウェアプラットフォームのこと。~ [[Linux>プログラミング用語#Linux]]ベースのOSとミドルウェアで構成される。~ [2] その開発に使われるライブラリのこと。~ [[Java>プログラミング用語#java]]でありながら[[Java>プログラミング用語#java]]でないというポジションが、Sun様からやや嫌われぎみ。~ そんなこともあってか、Eclipseと親和性が高く、Eclipseを用いて手軽にAndroid向けソフトウェアが書けるようになっている。 -&aname(ascii){ASCII(あすきー)};~ [1] American Standard Code for Information Interchangeの略称。 ~ [2] ASCIIコードのこと。~ [3] パソコン雑誌等で有名な日本の会社。~ -&aname(asciicode){ASCIIコード(あすきー~)};~ 文字を取り扱う上での一番基本的な英数字・記号の規格。単にASCIIとも。~ PC-UNIX等のUNIX系システムでは、man asciiとすることでASCIIコードの一覧を参照することが出来る。 -&aname(atandt){AT&Tベル研究所(えーてぃーあんどてぃー~けんきゅうじょ)};~ おそらく世界でも5本の指に入る、ハイテク研究機関。~ 研究所の名称は、電話の発明者であるベル博士に由来する。(AT&Tってのは、向こうのNTT的な存在)~ トランジスタの開発やUNIX、[[C>プログラミング用語#C]]の開発など、情報産業に与えた影響は計り知れない。 **B [#m66f31e8] -&aname(b){B(びー)};~ B言語。UNIXやCの生まれ故郷である、AT&Tベル研究所で開発されたプログラミング言語。~ [[C>プログラミング用語#c]]の直接の祖先で、中間言語にコンパイルしてからインタプリタ実行するという、現在の[[Java>プログラミング用語#java]]のような実行形式を有した言語であった。~ また、変数型にはスカラー型しかなく、[[C>プログラミング用語#c]]に置き換えられる形で絶滅した。 -&aname(binary){Binary(ばいなり)};~ 本来の意味は2値の、二つの、双対のといったようなもの。~ 転じて、プログラミングにおいては機械語表現されたファイル、すなわちコンパイル済みのファイルを表すことが多い。~ バイナリファイルの中でも、特にリンク前のものはオブジェクトファイルと呼ばれ、リンク後のものは実行ファイルと呼ばれる。~ 実際にはコンピューター上で扱われるすべてのファイルがバイナリだが、テキストデータとして認識でないもの=バイナリデータという扱いを受けることが多く、テキストとは区別される。~ 画像や音声もバイナリファイルである。~ -&aname(bsd){BSD(びーえすでぃー)};~ BerkeleySoftwareDistributionの略。~ 広義にはカリフォルニア大学バークレー校によるソフトウェア配布物全般を指すが、通常BSDといえば、FreeBSDやNetBSD、OpenBSD、DragonFlyBSDに代表されるUNIXクローンのことを言っているとみてまず間違いない。 **C [#x57cf1fb] -&aname(c){C(しー)};~ カーニハンとリッチーによる、UNIXを記述するために開発されたなんて伝説のある言語。~ 当時の言語としては汎用性が高く、修得も容易だったとされることから広く普及した。~ でも本当は、優れたOSであるUNIXがCで書かれていたために、UNIXをいじるにはCの知識が必須だったからというだけで、別にCが優れた言語だからという訳ではない。~ 中級言語などと呼ばれ、アセンブラに近い処理からあるていど抽象化した処理まで幅広くこなせる。~ 数々のシステムで標準言語として用いられ、実に多くの開発現場で現役として働いている。~ 「まず勉強しようと思うなら、Cからはじめておけば間違いないよ。」などという悪魔の囁きが実に多くの場所でなされ、今日もまた新たな被害者を生み出している。 -&aname(cui){CUI (しーゆーあい/くい/きゅーい)};~ [1]これなんてUNIXインターフェイス?の略~ [2]Charactor (base) User Interfaceの略~ [3]Command User Interfaceの略~ いずれも、文字や記号を駆使することによって構築された、対ユーザーインターフェイスのことを指す。~ 特にUNIX系OSでは広く利用されており、スクリーン制御ライブラリなどと呼ばれるcurses/ncursesライブラリを用いることで、通常よりも自由度の高い端末制御を行い、GUIに似た見た目や操作感を、文字ベースのインターフェイスで作り出すことができる。~ [4]文字ベースのインターフェイスを提供する端末エミュレータ、または端末ソフトウェアの類を指す言葉。~ [関][[端末>プログラミング用語#term]] [対][[GUI>プログラミング用語#gui]] -&aname(cpp){C++(しーぷらすぷらす/しーぷらぷら)};~ ・[[オブジェクト指向>プログラミング用語#oo-ja]]プログラミングは、すべての問題を解決してくれる神様みたいなものじゃない。~ ・[[C>プログラミング用語#c]]でプログラミングするなんてバカらしい。~ ・安全じゃないプログラムの作り方というものを、俺が教えてやろう~ の三つを信条に設計された言語。っていうか言語仕様膨大すぎ。~ おかげさまで、言語仕様に即した入門書なんてそうそうありません。 **D [#jaa09837] -&aname(d){D(でぃー)};~ D言語とも。~ [1] Digital Mars社のウォルター・ブライトが中心となって、[[C>プログラミング用語#c]]言語の後継を目指して開発されているマルチパラダイムプログラミング言語のこと。~ [2] システム情報取得ツールDTraceに向けて用意されたスクリプト言語~ [3] マイクロソフトが開発中の、非開発者を対象とした宣言型言語。 -&aname(debug){debug(でばっぐ)};~ バグを取り除く作業のこと。卓越したドMプログラマになると、この作業が快感でたまらなくなる。~ 企業に入ると、普段のコーディングはてんでダメなのに、debugになるとやたらすごい能力を発揮する人が居るという、そんな作業。~ 基本的には重箱の隅をつつくような地味な作業から、仕様通りに動かないプログラムを動くようにする作業までの幅広い作業全般を指す。~ 日本で最も有名かつ優秀なdebugチームは、任天堂の擁するマリオクラブだと思う。たぶん。 -&aname(delphi){Delphi(でるふぁい)};~ CodeGearによって開発されている、Windows向け[[RAD>プログラミング用語#rad]]ツール。~ [[Pascal>プログラミング用語#pascal]]を独自に[[オブジェクト指向>プログラミング用語#oo-ja]]拡張した、Delphi言語を用いてプログラミングを行う。~ 驚異的なコンパイル速度ど、よく作りこまれたフレームワークが特徴で、熱狂的なファンも多い。~ Delphi7から.NETにも対応し始め、現在では.NET2.0程度のテクノロジーを利用できるようになっている。~ 親会社が不安定だったことから、紆余曲折あったものの、現在もなんとかやっている感じ。~ 開発環境がフリーで手に入る、VBより早い、データベースとの親和性が高い、手軽にプログラムが作れる~ などの理由から手を出す初心者も多いが、たいていは情報の少なさに挫折する。~ っていうかマイナーなんだよね。[[Pascal>プログラミング用語#pascal]]とか。俺は好きだけどさ。 **E [#id1c3f62] -&aname(e){E(いー)};~ E言語。LSI検証のための[[オブジェクト指向>プログラミング用語#oo-ja]]のテストベンチ記述言語。 そっち系の業界では結構有名。 **F [#p6ec6366] -&aname(f){F(えふ)};~ F言語。Fortranのこと。特にFと表記する場合、Fortran77のことをさす場合が多い。 -&aname(fortran){Fortran(ふぉーとらん)};~ ヨード卵に似ているけれど、こちらは列記とした科学技術演算用プログラミング言語。~ 現存する最古の言語だが、現在も計算工学分野など、科学技術系のプログラミングでは需要が高い。~ 現在利用されているFortranには大きく分けて、Fortran77、Fortran90、Fortran95が存在し、年代があがるごとに変態度が増す。~ Fortran90あたりを学んでおけば、もしかしたら計算工学系の分野からお呼びがかかる様なことがあるかもしれない。~ もちろん、新規開発ではなく、既存プログラムの保守だがね。 **G [#ffa8a82b] -&aname(g){G(じー)};~ G言語。モーター制御に特化したプログラミング言語。~ 文法はBasic+アセンブラみたいな感じ。 -&aname(gnu){GNU(ぐにゅー/ぐにゅ)};~ [1] RMS率いるフリーソフトウェア団体。~ ソフトウェアに自由を!を合言葉に、クローズドソースなソフトウェアを駆逐しようと日々尽力している。~ 主たる目標は、自由なソフトウェアで固められたUNIX互換のシステム(GNUシステム)を作り上げることだが、それ以外の活動も活発に行われている。~ 特に注目すべき活動が、コピーレフトライセンスとして有名なGNU GPLとGNU LGPLの策定である。~ このライセンスは多くのソフトウェアに適用されており、ひいてはオープンソースソフトに影響を与えるものであるため、特にソースコードがオープンにされているソフトウェアへのGNUの影響力は、一流と呼ばれるソフトウェアベンダーよりも強いと考えられる。~ [2] GNU is Not UNIXの略称で、GNUが目指すUNIX互換の完全に自由なオペレーティングシステムのこと。~ 現在は中核としてLinuxをすえた、GNU/Linuxがよく知られているが、プロジェクトが目標としているのはHurdというコアを用いたGNU/Hurdシステムの完成である。~ Hurdの開発は難航しているうえ、ソフトウェア業界が日々変化し続けていることから、GNUシステムの完成は永遠に無いと予測する技術者さえいる。 -&aname(gpl){GNU GPL(ぐにゅー<ぐにゅ>じーぴーえる)};~ 単にGPLとも。~ GNU General Public Licenseの略称で、GNUが推進する真に自由なソフトウェアに適用されるべきライセンス形態のことを言う。~ 日本語ではGNU 一般公衆利用許諾契約書と訳され、その名称から、ソフトウェア作者と利用者との間で交わされるライセンス契約のひとつであることがわかるだろう。~ 基本的には、第0の自由からはじまる5つの自由を約束するライセンス形態のことで、~ 0.ソフトウェアは必ずソースプログラムが入手できるようにすること。 1.ソフトウェアの使用、複製、変更、頒布したり、新しいフリーソフトウェアの一部として利用することを制限しないこと。 2.変更、改良されたソフトウェアは同じくGNU GPLに従って頒布されること。 3.プログラムの全部あるいは一部を用いて作られたソフトウェアはGNU GPLに従って頒布されること 4.ソフトウェアは無保証であり、そのソフトウェアが原因でトラブルが生じても作者に責任はないこと。 が柱となっている。特に厄介なのが第2条と第3条で、第2条に関してはLinuxなどGNU GPLの適用されたソフトウェアを自社製品のベースシステムとして採用した場合、改変した部分(例えば、自社の特殊な製品に適合させるためにチューンした部分)なども含めてオープンにしなければならないため、たびたび訴訟問題煮まで発展している。エレコムの、Linuxは二度と使わない発言は、この第2条に端を発するものである。~ 第3条に関してはGPL汚染という言葉で知られており、特にオープンソースの利用が盛んになってきた昨今問題視されている。詳しくは、GPL汚染の項を参照していただきたい。~ GNU GPLは、良くも悪くも、ライセンスの大切さを教えてくれるライセンスであるといえる。~ [類] GNU LGPL -&aname(lgpl){GNU LGPL(ぐにゅー<ぐにゅ>えるじーぴーえる)};~ 単にLGPLとも。 正式名称をGNU Lesser General Public Licenseという、GNUが提唱するソフトウェアライセンス形態のひとつ。~ 日本語ではGNU 劣等一般公衆利用許諾契約書と訳される。~ GNU GPLと違い、本体に手を入れない限り、クローズドな開発が可能であるため、ライブラリの類に適用されることが多い。~ GPL汚染の危険性が低いことから人気の高いライセンス形態であるが、そこはコピーレフトを提唱するGNUの唱えるライセンスだけに、利用には十分な注意とライセンスへの理解が必要である。 -&aname(gplcont){GPL汚染(じーぴーえる汚染)};~ 作成したソフトウェアが、GNU GPL2条および3条の縛りによってGPL化されてしまう現象のこと。~ 例えば、自社製品の内部コマンドとして、GNU GPLでライセンスされたソフトウェアの一部のソースコードをコピーし、用いたとする。(GNU GPLでライセンスされたソフトウェアは非常に多いため、便利なソースコードが多く、こうして利用してしまう技術者も少なくない。)~ そうすると、そのソースコードはすべてGPLとして配布されなければいけなくなる。~ より恐ろしいのは、GPLでライセンスされたライブラリを、自分のソフトウェアにリンクした場合にも、GNU GPL3条の縛りによってGPL化しなければならなくなる場合である。~ 主として、この二つの場合をGPL汚染と呼ぶ。~ 本スレッドでも話題になる場合があるが、GPLでライセンスしましたと書いたソースコードをスレッドに貼り付けた場合、GNU GPLを拡大解釈すれば、そのスレッドに貼り付けられたほかのソースコードもすべてGNU GPLでライセンスされなければいけないと読み取ることも可能なことから、冗談交じりにスレッドが汚染されたという話題が飛び交うのである。~ スレッドの汚染は冗談だとしても、オープンソースの利用が活発になっている昨今、プロプラエタリな環境でコーディングをしているプログラマにとって、特に注意しなければならない問題であるといえる。~ 最近よく耳にする、busyboxを自社製品に取り込んだことによって起こっているGPL訴訟の大部分は、このGPL汚染によるものである。~ -&aname(gui){GUI (じーゆーあい/ぐい/ぐーい)};~ [1]ごめん。ユウジにはイズミがそう言ってたって伝えておくから・・・。の略。~ 「なにか」があった男女間のやりとりを髣髴とさせる一文のこと。~ [2]Graphical User InterfaceまたはGraphic (base) User Interfaceの略。~ 画像をベースにしたインターフェイスの総称で、ボタンやコンボボックスなどを含む、WindowsあるいはMacで採用されている標準的なインターフェイスのこと。~ [対][[CUI>プログラミング用語#cui]] **I [#l995cd1a] -&aname(inheritance){inheritance(いんへりたんす)};~ [[オブジェクト指向>プログラミング用語#oo-ja]]プログラミングにおける継承のこと。 -&aname(instance){instance(いんすたんす)};~ メモリ上に実際に配置されたオブジェクトのこと。~ オブジェクトの実体。~ **J [#i1bd9459] -&aname(J){J(じぇー)};~ J言語のこと。APLの後継言語。数式を非常に単純に記述する事が可能であるが、それゆえ~ 難解なコードになってしまう。APLとの違いは演算子を合成できること -&aname(java){Java(じゃば)};~ スペルが同じなので混同しがちだが、コーヒーで有名なジャワ島のジャワとは発音が違うので注意。~ コーヒーマークといまいち目立たない奇妙なキャラクターが有名な、Sun Microsystemsによるプログラミング言語。~ [[C>プログラミング用語#c]]の親戚みたいな文法をしていて、[[C>プログラミング用語#c]]系言語の修得者なら、比較的容易に実につけることができるとされている。~ 目指すところは「一回書いてコンパイルしたバイナリは、どの環境でも動く」というものだが、所詮それは理想論。~ むしろ世間的には、言語レベルで[[GUI>プログラミング用語#gui]]とスレッドをサポートしている点が、当時高評価を受けた。~ 後に登場するC#言語などに強い影響を与えたほか、後発のC#言語に奪われつつあるシェアを奪還するためか、近年オープンソース化もなされた。~ あーもう、だめかもしれんね。サン。 **K [#bc7ac896] -&aname(K){K(けー)};~ K言語のこと。APLの代替として開発されたA+の改良版。非常に簡単に[[GUI>プログラミング用語#gui]]を扱えるのが特徴。 **L [#w464211f] -&aname(Linux){Linux(りなっくす/らいなっくす/りぬくす)};~ フィンランド人のLinusが中心となって作り上げている、フリーなUNIXライクなOS。~ 広義にはディストリビューションとよばれる、システムとして使うことのできるものを指し、~ 狭義にはカーネルそのものを指す。~ 前者は、後者と明確に区別する意味合いや宗教的な理由から、GNU/Linuxとも呼ばれる。~ ほとんどの場合開発環境が付属する、サーバシステムを手軽に構築できる、UNIXを使っていた人間には使いやすいなどの理由から、開発畑の人には好まれる傾向にある。~ -&aname(Linus){Linus(りーなす)};~ フルネームはLinus Benedict Torvalds(りーなす・べねでぃくと・とーばるず)。~ 普通、LinusとかLinus Torvaldsと呼ばれる、Linux開発の親玉。~ 大学院生時代にMINIXに触発されてLinuxの開発をはじめたと言われている。~ 別名:優しい独裁者 **M [#tb20bd06] -&aname(malloc){malloc(えむあろっく/まろっく)};~ [[C>プログラミング用語#C]]言語において、動的にメモリを確保するためのひとつの方法。~ alloc系関数の一種で、プロトタイプは~ void *malloc(size_t size); sizeバイトを確保し、その領域へのポインターを返す。メモリの内容はクリアされないので、利用する前には初期化が必要になる。また、返されるのが汎用ポインタであるので、適切な型にキャストしてやる必要が生じる。確保したメモリ領域は自動的に解放されないので、適切なタイミングで解放してやる必要がある。 -&aname(matz){Matz(まつ)};~ Rubyをつくった人のいいおじさん。まつもとゆきひろのこと。~ 日本が誇るハッカーで言語ヲタク。クリスチャンでもある。~ 国内有数の「物言うハッカー」としても有名。 -&aname(MINIX){MINIX(みにっくす)};~ オランダで開発された、教育用UNIX互換OS。~ Operating Systems: Design and Implementation(邦題はオペレーティングシステム 設計等実装)~ の付録として、ソースコード全文が添付されていた。~ しかし、ソースコード利用のためのライセンスはとてもオープンなものとはいえず、このことがLinusがLinuxを開発するきっかけになったともいわれている。~ 現在MINIXはBSDライセンスの元ソースが公開されているため、Linuxのようなコミュニティーを作ることも可能かと考えられる。~ また、現在のMINIXはコードも大規模化しているため、教育目的での利用に向かない場合もある。 **N [#a443400a] -&aname(new){new(にゅー)};~ [[C++>プログラミング用語#cpp]]言語において、オブジェクトのインスタンスを作成する時に用いる演算子。~ また、[[C>プログラミング用語#c]]プログラマが、[[C++>プログラミング用語#cpp]]を使ったときにまず感動する演算子でもある。~ メモリの確保とコンストラクタの呼び出しなど、これまでmallocを使いながらちまちまやっていた処理を一手に担ってくれる、まさに神のような存在。~ けれども、実はmallocと同様、確保した記憶領域は自分で解放しなくてはいけないことを知り、早々にゲンナリさせてくれる演算子でもある。 -&aname(null){NULL(ヌル/ナル)};~ 0、または空値。~ 言語によってはnull、nilとも。 -&aname(nullpo){Null pointer exception(ぬる<なる>ぽいんたーえくせぷしょん)};~ Javaに含まれるクラスのひとつで、例外の一種。参照先がnullな変数やメソッドを呼び出したときに、この例外がスローされる。nullチェックをきちんと行えば、まず出会うことのない例外でもある。 -&aname(nullre){Null reference exception(ぬる<なる>りふぁれんすえくせぷしょん)};~ コード内に存在しないオブジェクトを参照しようとした時や、nullなオブジェクトを参照しようとした時投げられる例外。.NET系言語で出会うことが多い。 -&aname(nysl){NYSL(えぬわいえすえる)};~ ・使用料を要求しない~ ・再配布や転載を制限しない~ ・改変・利用を制限しない~ ・変更・一部引用に関して、原作者の許可を取ったり、原作者の著作権表示を含める必要は無い~ を柱とする国産のオープンソースライセンス。~ 煮るなり焼くなり好きにしろライセンスの略。DDE(ドー・デモ・イーヨ)とほぼ同義。~ Everyone'sWareを合言葉とし、みんなで使えるソフトウェアのためのゆるゆるなライセンスとして人気が高い。~ また、ライセンス文書が日本語で書かれており、それ自体が法的効力を発するだろうと考えられることも、GNU GPLのように原本を当たらなくても気軽に適用できて良いと考えられる大きな利点である。 **P [#re1042b2] -&aname(pascal){Pascal(ぱすかる)};~ [1]圧力の単位。単位面積当たりの力をあらわす。表記はPa。~ SI単位系で表すと、1Pa( = 1N/m^2) = 1kg/(m・s^2)~ [2]Algolの影響を強く受けた教育用途向けプログラム言語。~ 分類としては、コンパイラ型言語に属する。~ 同時期に開発された[[C>プログラミング用語#c]]とは、よく兄弟言語として称されている。~ [[C>プログラミング用語#c]]と比べて型に厳密なこと、日常的な英語文法にその記法が近いこと、代入文などで数学的な記法に近い記法を使えることなどから比較的扱いやすく、プログラミング言語教育のほか、アルゴリズムを実装するためにもつかわれてきた。~ 国内ではTurboPascalが安価で利用できた時代に、ホビープログラマの間で絶大な人気を誇った言語である。~ 現在その人気は下火で、利用率も低い。~ もし利用するならば、FreePascalなどのフリーのPascalコンパイラを用いるか、 Pascalを拡張する形で実装されたObject Pasca(または[[Delphi>プログラミング用語#delphi]]言語)を利用できる各種の開発環境を使うことになる。~ -&aname(perl){Perl(ぱーる)};~ [1] ラリー・ウォールによって開発された、テキスト処理に主眼を置いたスクリプト言語。~ いかにも後付け感のある、Practical Extraction and Report Language、またはPathologically Eclectic Rubbish Listerという言葉の略称であるとされている。~ 「ひとつの結果にたどり着くための記述手法が、非常にたくさんある」ことでも有名な言語で、今日書いたソースでも、3時間後には読めなくなっている可能性がある。~ 主としてCGIに使われたことで、ウェブの黎明期を支えた。~ 現在でもCPANという強力なライブラリ管理ツールと共に、幅広いソフトウェア分野で利用されている。~ [2] Perlを処理するインタプリタのこと。このインタプリタをさす場合、正式にはperlと表記する。 -&aname(php){PHP(ぴーえいちぴー/ぴーえっちぴー)};~ 正式名称をPHP : Hypertext Preprocessorという、お手軽言語の急先鋒。~ 動的にウェブページを生成することに主眼を置いたプログラム言語で、主にサーバサイドで利用される。~ XMLや各種データベースを手軽に扱うための機能が充実していることから、ウェブに関連したアプリケーションの多くがPHPで書かれるようになった。~ その手軽さから初心者向け言語などと呼ばれるが、「初心者がウェブアプリを書くな」「言語使用が不安定」「そもそも初心者向け言語など存在しない」などといった理由から、嫌われることも多い。~ [類] ASP、JSP **Q [#pa2ccac1] -&aname(Q){Q(きゅー)};~ Q言語。非常に大きな数値を扱うことができる。何気に高性能なインタプリター。 **R [#rb5bbc30] -&aname(R){R(あーる)};~ R言語。統計解析向け言語でS言語+C言語+関数型を3で割ったような感じ。 -&aname(rad){RAD(らど)};~ [1] Rapid Application Developmentのこと。~ プログラム開発手法の一つで、プロトタイプを何度も作りながら、目的とする完成形に近づけていく開発手法をさす。~ [2] RAD環境のこと -&aname(radd){RAD環境(らどかんきょう)};~ プログラムの作成を、高速かつ確実にするために特別に作成された統合開発環境のこと。~ 特に、[[GUI>プログラミング用語#gui]]部分を要する複雑なアプリケーションの開発が容易に出来るものをさす。~ 代表的なものに [[Delphi>プログラミング用語#delphi]]、NetBeans、[[Visual Basic>プログラミング用語#vb]]、[[Visual C#>プログラミング用語#vcs]]などがある。~ [類] [[統合開発環境>プログラミング用語#ide_ja]] -&aname(rms_full){Richard Mathew Stallman(りちゃーど・ましゅー・すとーるまん)};~ フリーソフトウェア活動家で、[[GNU>プログラミング用語#gnu]]の親玉にして、グルクラスの[[ハッカー>プログラミング用語#hacker]]。~ 日本国民から見れば、某宗教団体教祖様を髣髴とさせる風貌の、独身ヒゲ親父。~ 欧州の絵画に登場する、キリストの風貌にも似てるかも。~ どちらにせよ、宗教家風味な風貌をしてることに違いは無い。~ でも、本人は無神論者。~ ただし、[[GNU>プログラミング用語#gnu]]という宗教の教祖であると言っても過言ではないと思う。~ -&aname(rms){RMS(あーるえむえす)};~ [[Richard Mathew Stallman>プログラミング用語#rms_full]]のこと。~ -&aname(ruby){Ruby(るびー)};~ [[Matz>プログラミング用語#matz]]が作った純国産[[オブジェクト指向>プログラミング用語#oo-ja]]スクリプト言語。別名MatzLisp。~ **S [#l7a7b937] -&aname(S){S(えす)};~ S言語。ちまたで流行ってるアレとは違う。AT&Tベル研究所が開発した統計解析用言語。~ プログラマの思考をそのまま記述するというモットーを元につくられた。 -&aname(scheme){Scheme(すきーむ)};~ A4で50ページ程度しかないという、言語使用の小ささが売りのLISP方言。~ 最近のプログラム言語の機能でも、SchemeやLISPのものを参考にして作られた機能が数多くある。(call/cc、lambdaなど) -&aname(sicp){SICP(えすあいしーぴー)};~ Structure and Interpretation of Computer Programmingのこと。邦題は計算機プログラムの構造と解釈。魔術師本、紫本などとも。~ MIT発のプログラミング初等教育に用いられる教科書で、[[Scheme>プログラミング用語#scheme]]を使ったいかに計算機がそのプログラムを理解するのか?という立場に立った解説がなされている古典的な書籍。~ どんなプログラマでも一度は読んでおくべきなどと勧められるが、訳書第2版の評判が芳しくなく、かといって原著にあたるのも骨が折れるという歯がゆい思いをさせてくれる書籍としても有名。~ 書かれている内容はMITのお偉いさんが書いただけあってすごい。~ 演習問題なども充実していて、スキルアップにはもってこいの一冊。~ 値段が高くて買えないという人は、原著がwebで無償公開されているので、そちらで学習するのもあり。 -&aname(solaris){Solaris(そらりす)};~ 太陽のロゴがトレードマークの、Sun MicrosystemsによるUNIX。~ 近年オープンソース化されて話題を呼んだ。~ [[Linux>プログラミング用語#Linux]]などとは違う、ホンモノのUNIX(プラス、大企業のお墨付き)として動作実績を重視する現場、ミッションクリティカルな現場、サーバシステム、一部のマニアがデスクトップ用途になど、幅広く支持を集めている。~ フリー版に関しては、[[GNU>プログラミング用語#gnu]]謹製ツールをサクサク使うには、ちょっと面倒な設定が必要とか、フリーなのにATOK使えるの!?スゲーとか、そんな話ばかりをよく聞く。真偽のほどは定かではない。 **T [#kc7ace7d] -&aname(T){T (てぃー)};~ T言語。[[Scheme>プログラミング用語#scheme]]の方言とも言える言語。実態はほぼ[[Scheme>プログラミング用語#scheme]]と同じ。 -&aname(tts){TTSneo(てぃーてぃーえすねお)};~ [[Visual Basic>プログラミング用語#vb]]で記述された、日本語スクリプト言語。~ 同種のものに[[ひまわり>プログラミング用語#hima]]などがある。~ TTSneoは、それらに比べてより命令的な口調でスクリプトを記述することが特徴。~ ひまわり同様、[[GUI>プログラミング用語#gui]]デザイナまで梱包した統合開発環境が付属し、面倒な環境設定なしにプログラミングを始めることができるとされる。~ ひまわり同様応用範囲が広く、ちょっとしたツールを書くのに便利。 **V [#e9cbbc49] -&aname(v){v(ぶぃ)};~ V言語 -&aname(vb){Visual Basic(びじゅある べーしっく)};~ Microsoftによるお手軽プログラミング環境。~ 「Basic並に手軽に」プログラミング可能で、6.0まではプログラミング経験ゼロの素人でもそれなりのプログラムが書けることと、それに伴う人員確保の容易さ、環境そのものの特性からくる、工数の少なさやデータベースとの親和性も相まって、数多くの企業で業務用アプリケーションを記述するために用いられた。~ その時代に作られた負の遺産は現代でも行き続け、数多くのプログラマを苦しめているといわれる。~ もうね、正直疲れたんだよ。VB5世代のプログラムの保守なんてさ。~ だってバグだらけなんだもん。前任者探したら、もう退職したってさ。~ あーあ。ビルゲイツはなんてことしてくれたんだろうか…。 -&aname(vcpp){Visual C++(びじゅある しーぷらすぷらす)};~ 変態的なクラスライブラリことMFCでおなじみのマイクロソフトによるC++言語開発環境。~ Windows上で[[C>プログラミング用語#c]]/[[C++>プログラミング用語#cpp]]プログラムを開発する際の事実上の標準となっており、利用者も数多い。~ 一時期は標準対応への遅れや、環境そのもののバグなどが指摘されたが、最近は落ち着いている様子。~ .NET登場以後、Maneged C++などという、これまた変態的な[[C++>プログラミング用語#cpp]]拡張をサポートするも、現在でもVC++6が現場ではよく使われているため、.NET登場以後になされた環境の拡張に関しては認知されていないことが多い。~ 近年無料版が登場したり、学生向けには無料で環境を手に入れられるようにするプログラムがスタートしたりと、VC++6当時、少ない小遣いを握り締めながら家電量販店でVC++6 Standard Editionを購入した俺に喧嘩を売っているとしか思えない施策をとり始めている。~ なんかね、もう信じられないわ。ビルゲイツが。 -&aname(vcs){Visual C#(びじゅある しーしゃーぷ)};~ マニュアル車にずっと乗ってた人が、初めてオートマ車に乗ったときに感じる、「ここまで至れり尽くせりだと、人間だめになるだろwwwJKwww」という感覚をプログラミングの世界でも味わわせてくれる、MicrosoftによるC#言語開発環境。~ DelphiのVCLを設計した人を引き抜いてまで.NETFrameworkとVC#に力を入れたと言われるほどMicrosoftが本気で取り組んでいるもので、VC++より簡単で、VBよりマシな環境を提供してくれる。~ なんだその、言語としてのC#ならそれなりに好きなんだけど、こうもVC#+.NETFrameworkでいろいろ楽にできすぎるとね、下手にDLLの関数呼び出さなくちゃいけない時とか、ライブラリに無い機能実装するときとか、ホンと、嫌になるよね。~ まぁ、プラモ感覚でプログラム組みたい中学生には向いてるんじゃねぇの?よく知らないけど。 -&aname(vjs){Visual J#(びじゅある じぇいしゃーぷ)};~ 「もうやめてー![[Java>プログラミング用語#java]]のライフはゼロよー!!!」 **Z [#b17e5253] -&aname(z80){Z80(ぜっとはちじゅー)};~ 8080の腹違いの兄妹と噂されている8ビットプロセッサ。「アセンブラ始めたいんだけど」という言葉を聞くとどこからともなく現れる。有名どころなのでエミュレータもそこそこあるとかで、運悪く実機が入手できなくてもなんとかなる。 **あ [#d6d70c3e] -&aname(assembler-ja){アセンブラ};~ [1] 英語ではassembler。字面のとおり、アセンブルを行う者の意。コンパイルに対するコンパイラとおなじ位置づけの言葉。~ [2] アセンブラによってアセンブルすることのできる、機械語と一対一で対応したプログラム言語のこと。ニーモニック。 -&aname(assemble-ja){アセンブル};~ 英語ではassemble。アッセンブルとも。~ コンパイルが機械語と一対一対応でないソースコードを機械語に翻訳する作業なのに対して、アセンブルは機械語に一対一で対応したソースコードを機械語に翻訳する作業を指す。 **い [#sb6c24f4] -&aname(India-ja){インド};~ 南アジアに位置する、インド亜大陸の大部分を占める連邦共和国。~ 99x99の掛け算まで暗記させられるとか、小学校5年生で日本の中学校後半レベルの数学教育がなされているとか、数学教育に熱心なことで有名。~ そのせいか、非常に優秀なプログラマを多く擁する。~ これに人件費の安さもあいまって、現在世界からガンガン仕事を取り入れ、発展を続ける国である。~ 日本のITドカタなど、彼らに比べればカスだという業界関係者もいるとかいないとか。 **う [#h5f610dd] -&aname(wiz){ウィザード};~ [1]本来は魔術師の意味だが、魔術師のようにプログラムを操る上位のハッカーをこう呼ぶ。~ ここにある種のカリスマ性が加わると、グルと呼ばれるようになる。~ 基本的に変人が多いので、コミュニケーションをとるときには注意が必要。~ [2]煩雑な操作を簡潔なものにし、愚かなユーザ達の手を煩わせないようにしよう、という偉大な発想の下に作られた、きわめて簡単な数ステップの操作さえも複雑で面倒で無意味な何回もの操作に置き換えてしまう偉大なプログラム。 **お [#g9f74ff3] -&aname(object-ja){オブジェクト};~ プログラミングをする上で重要な概念のひとつ。~ プログラム上で登場する、各要素のこと。~ 狭義には、データとそのデータに対して行う操作をパックしたものを指す。~ 広義には、データそのものを指す。~ 例)変数オブジェクト、クラスオブジェクトなど。 -&aname(oo-ja){オブジェクト指向(~しこう)};~ [1] プログラムをオブジェクトの集まりとして表現しようという概念。~ [2] プログラム上で発生するすべての問題を、簡単に解決してくれるのではないかという幻想を抱かせる魔法の言葉。もちろん、そんなおいしい話は存在しない。~ [関] ~開発、~設計。 -オブジェクト指向開発(~しこうかいはつ)~ オブジェクト指向を適用した開発案件のこと。~ 継承、多態勢、カプセル化の三つを基本的な柱として、保守性、拡張性に優れた開発を目指す。~ [類] オブジェクト指向設計 -&aname(ood-ja){オブジェクト指向設計(~しこうせっけい)};~ オブジェクト指向を適用した設計手法のこと。~ 設計段階にまでオブジェクト指向を引き合いに出し、根本的な設計から狭義のオブジェクトとなるものを洗い出してプログラムの設計を行う。~ [類] オブジェクト指向開発 **き [#y86b23fb] -&aname(Project_book-ja){企画書(きかくしょ)};~ こんなアプリはどうでしょう?こんなアイディアおもしろくないですか?というアピールを上司にして、開発費を下ろしてもらったり、顧客に対して提案をするときにまず必要になる文書。新入社員が訳もわからず書かされ、上司に罵倒されるための道具でもある。~ ここで提出された企画書を煮詰めていって、仕様書などが作成される。~ -&aname(kikakudaore){企画倒れ(きかくだおれ)};~ 企画書の段階では、とってもおもしろそうだったんだけどねぇ・・・。 **く [#vae5f363] -&aname(guru){グル};~ guruとも。~ 最高位のハッカーに与えられる敬称。~ カリスマ性を備えたウィザードのことをこう呼ぶ場合が多い。~ 現在、グルと呼ばれる[[ハッカー>プログラミング用語#hacker]]は世界に数人しか居ない。 [類] [[ウィザード>プログラミング用語#wiz]] **け [#cd09196a] -&aname(inh){継承(けいしょう)};~ [[オブジェクト指向>プログラミング用語#oo-ja]]プログラミングにおいて、あるクラス(スーパークラス、元クラス、親クラス、上位クラスなどという)の機能を受け継いだ新しいクラス(サブクラス、派生クラス、子クラス、下位クラスなどという)を設計、実装すること。~ inheritanceとも呼ばれるが、発音がinstanceに似ているため、混乱を防ぐ目的から継承と呼ばれることが多い。 -&aname(comp){計算工学(けいさんこうがく)};~ 一般解をもたない数々の物理方程式を、計算機を用いて近似的に解くことで、実用上十分な解を得ようという工学系学問のひとつ。~ 自動車設計や流体解析、構造解析などに用いられる。~ 日本の第一人者は矢川元基(元:東京大学教授)など~ 有限要素法、有限差分法、数値積分法など、いわゆる計算系アルゴリズムを全般的に研究する学問でもある。~ この分野の出身者は物理学を学んだ人間も多いため、純粋な情報系に対してより変態度が増す傾向にある。~ また純粋な理系ではなく、工学系であるため、あらゆる場面において理論値でなく誤差まで考えた測定値を想定してしまう思考回路をしているのが特徴。~ 英語ではComputationas Science and Engineeringなどとされる。~ 日本国内の大学でこの学問を学べるのは、東京工業大学と東洋大学だけ。~ (ただし、後者は平成21年度から当該学科が廃止される。) **こ [#eb5eb957] -&aname(kotodama){言霊(ことだま)};~ [[Java>プログラミング用語#java]]で記述された、日本語プログラミング言語。~ [[ひまわり>プログラミング用語#hima]]や、[[なでしこ>プログラミング用語#nade]]よりマイナーだが、それらよりもより「日本語的」に記述できる。~ [[Java>プログラミング用語#java]]との親和性もよく、書いたプログラムは(たぶん)Javaバイトコードとして出力されている。~ つまり、ひまわりやなでしこより高速であると期待できる。~ ただし、プログラミング言語としての色が濃いので、ひまわりやなでしこのように、手近なツールをぱぱっと記述するような、使い捨てツール記述言語としての使い方には向かない。 -&aname(compiler-ja){コンパイラ};~ 英語ではCompiler。~ 英語の字面を見れば推測できる通り、コンパイルを行う者の意。~ プログラムでは、実際にコンパイル作業を行ってくれるソフトウェアの事を指す。 -&aname(compile-ja){コンパイル};~ 英語ではCompile。もともとは資料を収集するとか、辞書やリストを編集するという意味を持つ動詞。~ 転じて、機械語と一対一に対応しているわけではないソースコードを、機械語に翻訳する作業のことを指す。~ 広義にはリンクまで含めた作業を指すが、狭義にはリンク前のオブジェクトファイルと呼ばれるファイルを出力するまでの作業のことを指す。~ [類] [[アセンブル>プログラミング用語#assemble-ja]] **し [#g1b69d8b] -&aname(hp){幸せになれるかもしれない(しあわ~)};~ 困っている人にアドバイスするときや、物事をよく理解しないで質問してくる初心者に対して回答するとき、文章の末尾に付けられる常套句。~ 幼児言葉的に、「しわわせになれるかもしれない」とも。~ [1]まずは探してから来い、下手な質問をするんじゃないよという気持ちと、あからさまに相手に対して敵意を感じさせないで、それを伝えるための表現方法として使われる。~ [2]自分のアドバイスした事柄に対しては、責任は持てないよという意思表示のために使われる。~ [例] mallocでぐぐると幸せになれるかもしれない。 -&aname(reinnovation_of_wheels){車輪の再発明(しゃりんのさいはつめい)};~ 遙か昔に考案され、実際に試行錯誤が繰り返されて成熟したものを、その存在を知らずに自分で一から作ってしまうこと。多くの場合、完成するのはお世辞にも車輪とは呼べない「何か」であり、実用には耐えない。そして車輪を知っている人に自慢げにその何かを見せて[[絶望>ネタ/スレ住人に対し『カス』、『市ね』]]するのである。自分が天才だと思ったら、そうだと信じる前に自分の無知を疑おう。もし無知でないことが証明されたら、おめでとう。君は天才だ。これからも無知にならぬよう好奇心を持ち続けよう。 -&aname(specifications-ja){仕様書(しようしょ)};~ プログラムがどう動作するべきか、どのような状態でどのような処理を行うべきかを細かく指示した文書。ここに書かれていることであれば、一見バグと思われる動作でも「仕様ですから」と言って切り抜けることが出来る。プロジェクトが進むにつれて、頻繁に書き換わることもあるため、プログラマのためのデスノートと呼ばれることもある。 -&aname(siyou-desukara){仕様ですから(しよう~)};~ 「大豆ですから」のごとく発するべき、困った時の伝家の宝刀。~ この一言で、大多数の顧客は黙り込むという伝説が語られるほど、有名な一言である。~ 例)Windows Meのブルースクリーン?あぁ、それ、仕様ですからww **そ [#v515581e] -&aname(source_code-ja){ソースコード};~ 英語ではSource code。原始プログラムとも訳される。~ 各プログラム言語で書かれた、[[コンパイル>プログラミング用語#compile-ja]]前のテキストファイルのこと。~ [[コンパイラ>プログラミング用語#compiler-ja]]が適切に[[コンパイル>プログラミング用語#compile-ja]]を行うために、ソースコードは次の決まりをもって書かれる。~ --内容は、用いたいと思っているプログラム言語の文法に従う。 --文字の形や色といった、余計な情報がファイルに付加しない。(純粋なテキストファイルとする) --[[コンパイラ>プログラミング用語#compiler-ja]]で指定された文字コードを用いて記述する。 -&aname(source-kudasai){そのソースください};~ 自分のやりたいことを、他の誰かが実現している時に発するべき言葉。空気を読まずに発すると、怪訝な顔をされることがある。もし自分が言われた時は、きちんとライセンスに同意させた上でソースを渡してあげよう。 **た [#t8d9b342] -&aname(term){端末 (たんまつ)};~ ユーザインターフェースに特化した機器やコンピューター、またはそれを論理的に再現したソフトウェアのことを指す。~ GNOMEターミナルとか、multermとか、TeraTermとか、Puttyとかが有名。~ 広義にはWindowsのCmd.exeやPowerShell、NYACUSといったソフトウェアも含む場合がある。~ 駅の切符販売機やローソン、サンクスなどに置いてあるチケット販売機も、一種の端末といえる。 **ち [#g7cbbdf5] -&aname(chinese_room){中国語の部屋 (ちゅうごくごのへや)};~ 人工無脳の制作を語る際に語られる有名な思考実験。~ 手紙を出し入れする穴をもったとある個室には、中国語を知らない哀れな英国人と、中国語の文章に対して返答すべき中国語の文章が網羅されたマニュアルがある。哀れな英国人は、穴から渡される謎の記号の羅列(=実際には中文である)に対し、マニュアルを元に返答を作成して差し出す。このときマニュアルも、英国人も中国語を理解しているとは言えないが、その部屋に手紙を入れた中国人には、その部屋が中国語を理解していると考える。え?マニュアルを作った人?知らんがな(´・ω・`)~ という話。 **つ [#t5e16772] -&aname(usable_html){使える言語はHTMLです(つかえるげんごはえいちてぃえむえるです)};~ 非常に洗練された高度なジョーク。~ 面接などで相手に「[[どんな言語が使えるの?>プログラミング用語#quest_usable_lang]]」と訊かれた時に使用する。~ また、初対面の相手とうち解けるために積極的に「[[どんな言語が使えるの?>プログラミング用語#quest_usable_lang]]」と訊いてみよう。~ 「C言語を少々」や「アッセンブリ言語が使えます」などと答えるのはジョークを理解できない不粋物である。~ [関][[どんな言語が使えるの?>プログラミング用語#quest_usable_lang]] **て [#i55eaab0] -&aname(design_pattern-ja){デザインパターン};~ プログラミングでみんなが「あるあるww」とうなずけるパターンに対して適用可能な、効率の良い解法のこと。~ 様々なパターンがあり、それぞれに大層な名前が付いているが、発動にすごいスキルが必要とか、事前にトラップカードを伏せておかなくちゃいけないなんてことは一切無い。~ ライブラリのロードぐらいは必要かもしれないが・・・。~ このデザインパターン、汎用性のあるパターンが多く収録されているため、あらゆる問題をデザインパターンで解決しようという気になったり、問題にブチ当たるとまずデザインパターンでなんとかできないか考えるようになってしまう一種の病気を発病する危険性を孕んでいる。それなりにプログラミングの学習が進んでからチャレンジしましょう。 -&aname(death){デスマーチ};~ あー。。。納期まであと三日かぁ。。。~ 進捗?昨日の申し送り段階で、80%いったぐらいじゃない? -&aname(debugger-ja){デバッガ};~ [1] debugを行うソフトウェアのこと。debugger。~ 有名なものでは[[GNU>プログラミング用語#gnu]]によるgdbやBorlandによるTurbo debugger、マイクロソフトによるワトソン博士などがある。~ 原則として、プログラム言語に依存することなく用いることが可能である。~ [2] [[debug>プログラミング用語#debug]]を行う人のこと。マゾヒスト。ドM。~ [3] プログラムは大してかけないのに、他人のプログラムのバグを見つけ、原因を特定するのが上手な、職場に一人はいるプログラマに対して用いられる敬称。~ 例)~ 「あの人、遊んでますけどいいんですか?」~ 「あぁ、彼はデバッガだから、開発の初期段階では出番が無いんだよ」~ 「でも、2chとかしてますよ?」~ 「いいんだよ。デバッグのときに人の3倍は仕事するんだし。」 -&aname(debug-ja){デバッグ};~ [[debug>プログラミング用語#debug]]のこと。 **と [#u77da467] -&aname(ide_ja){統合開発環境(とうごうかいはつかんきょう)};~ [[IDE>プログラミング用語#ide]]とも。~ デバッガやエディタなど、プログラムに必要な環境を総合的に提供してくれるソフトウェアのこと。~ 特に高機能なものになると、プログラムをプロジェクトという単位で管理する機能やGUIフォームデザイナを提供してくれる。~ VisualStudioやEclipseといったものが有名。~ [類] [[RAD環境>プログラミング用語#redd]] -&aname(quest_usable_lang){どんな言語が使えるの?(どんなげんごがつかえるの)};~ [[使える言語はHTMLです>プログラミング用語#usable_html]]というジョークと共に使われる会話の導入部。~ 訊かれた場合「[[使える言語はHTMLです>プログラミング用語#usable_html]]」と答えなければならない。~ その他の言語(メジャ/マイナを問わず)を答えると、表面上は感心したような言葉を返して貰えるが、 心中ではバカにされていると考えるべきである。~ [関][[使える言語はHTMLです>プログラミング用語#usable_html]] **な [#d3859e83] -&aname(nade){なでしこ};~ 日本語プログラミング言語。~ ひまわりの後継として開発されている、インタープリタまで含めた純国産の製品群を言う。~ 式、制御文など、プログラミングに必要な要素すべてを日本語で記述する。~ ちょっとおかしな日本語になるのはご愛嬌。~ ちょっとしたツールをさくっと書くのには向いているかもしれない。 **ぬ [#nd5aee08] -&aname(nullpo-ja){ぬるぽ};~ [[Null pointer exception>プログラミング用語#nullpo]]のこと。~ -&aname(nullre-ja){ぬるり};~ [[Null reference exception>プログラミング用語#nullre]]のこと。~ **は [#wdf44e8d] -&aname(haker){ハカー};~ 自称ハッカーに対して用いられる蔑称。~ より勘違いの激しいものにたいして、スーパーハカーという蔑称が用いられる場合もある。 -&aname(hug){ハグ};~ バグとよく混同されるが、こちらは人恋しい夜にほしくなるもの。~ 濁点が無いだけで大分違うものになるので、言葉を使うときには注意が必要である。~ さて、ここで注意しなければならないのが、多くのプログラマの恋人は画面から出てくることができないという現実である。~ もし現実と真っ向から向かい合うことのできないプログラマを見つけたとしても、物言わないイラストの描かれた枕とハグをしていても、決して責め立ててはいけない。~ 製作戦隊ツクルンジャーとの約束である。 -&aname(bug){バグ};~ 英語表記はbug。本来の意味は虫のこと。~ SICP第2版では、本来の意味のまま、虫と訳されているが、指していることはここで説明するバグのことなので、読む際には注意が必要。~ バグは、プログラミング用語として用いる場合、プログラマが意図したとおりに動かない要素のことすべてをさす。~ どこまでがバグの定義かは難しいが、広義には製品出荷後に発生する実行時エラーまで含む場合があるし、狭義にはデバッグ段階で見つかったものまでをバグとすることもある。(すなわち、製品の出荷後に見つかった不具合は仕様となる。)~ エラーをどこまでバグとして扱うかは難しい問題だが、基本的にはプログラマ(あるいはソフトウェアの設計者)が意図したとおりに動いていないものは、すべてバグだと思っていい。~ スーパーファミコン世代は、「バグった」という言葉と共に育ってきたといっても過言ではないが、その多くはバグでないことは、この記事を読む読者なら了解済みのことだろう。~ もしゲームをしながら「うわwwバグったwww」とかいうクソガキを見つけたら、「仕様書も見ないでバグとかほざいてんじゃねぇよカス!」とやさしく語りかけてあげることが、大人としてのマナーであると筆者は考えている。 -&aname(hacker){ハッカー};~ 英語表記はhacker。hackするものの意。~ よく言われることだが、クラッカーやスクリプトキディとは違うので注意。~ それらとの最大の違いは、ハッカーが好奇心で突き動かされているという点。~ 具体的には、悪さをしたり、人が困る様がおもしろかったりするわけではなく、純粋に興味や知的好奇心、自分自身の正義のために技術力を使おうと考える点が異なる。~ 無精で短気で傲慢という三条件を満たす人物は、その素質があるといっていい。~ ただし、ハッカーとは周囲から呼ばれる敬称であり、自分自身で名乗るものではない。~ 自分自身で名乗ったら最後、ハカーと呼ばれることは間違いない。~ ハッカーの中でも特に優れた技術を持つものを[[ウィザード>プログラミング用語#wiz]]、そこにカリスマ的人間性が加わったものや、[[ウィザード>プログラミング用語#wiz]]の中でも突出した変人を[[グル>プログラミング用語#guru]]と呼ぶ場合がある。 **ひ [#y453d6af] -&aname(hima){ひまわり};~ 野原家の長女でしんのすけの妹。~ 中の人はこおろぎさとみ。 **ふ [#b60c3505] -&aname(first_class_object-ja){ファーストクラスオブジェクト};~ 英語ではfirst class object。~ [[SICP>プログラミング用語#sicp]]によると、「変数として名前が付けられて、手続きに引数として渡せて、手続きの結果として返せて、データ構造に組み込める」というオブジェクトのこと。~ 多くは変数そのものを指すが、LISPでは手続きもファーストクラスオブジェクトとして実装されている。~ -&aname(breakpoint-ja){ブレークポイント};~ プログラムをデバッグする際に指定する、プログラムの動作を一旦停止させたい場所のこと。ブレイクポイントとも。~ -&aname(blowser_game){ブラウザゲー};~ ちょっとした気分転換にはじめたはずが、気づくと日付が変わっている。~ そんなタイプのお手軽ゲームのうち、ブラウザ上で遊べるものをさす。~ 特にプログラマスレでは、デバッグ中やコーディング中の気分転換として人気が高い。~ 反面、その中毒性の高さから、自らブラウザゲーを禁じている住人も少なくない。~ VIPで立つ関連スレッドは、紛らわしいスレタイから嫌われることも多い。 -&aname(puyo_puyo){ぷよぷよ};~ その昔、「のーみそこねこね」のキャッチフレーズで一世を風靡したコンパイルという企業が販売していたパズルゲームシリーズの名称。~ 同じ色の四つのぷよを集めると消え、得点になるという単純なルールからファンも多く、仕組みそのものも単純であることから、プログラミングの課題として使われることも多い。~ 基本的なルールは~ ・画面上部からふたつひと組の「ぷよ」が落ちてくる~ ・同じ色のぷよは、四つくっつくと消える~ ・画面内がぷよで一杯になってしまったらゲームオーバー~ というもの。~ 実装する時にポイントとなるのは~ ・二次元平面をどう表現するか?~ ・壁際における「ぷよ」の探索をどう実装するか?~ ・「ぷよ」同士が四つ以上くっついたことをどう判定するか?~ ・くっついた「ぷよ」を画面から消した後の処理はどう行うか?~ ・連鎖判定処理をどのように実装するか?~ などで、課題として用いられる場合、プログラミング初級~中級者向けとされる場合が多い。~ なお、初級~中級者に実装させる場合には、画面描画など面倒な部分をライブラリとして提供することも多くあり、APIや他人の作った関数の使い方を学ばせる教材としても適しているとされる。 **へ [#y153d6af] -&aname(html){へてむる};~ HyperTextMakeupLanguageのこと。 粋な江戸っ子は「HTML」を発音する際に「HeTeMuLu」と母音を勝手に補完して 「へてむる」と発音する。 **ほ [#p4c5cf99] -&aname(pointer){ポインタ};~ 何かを指し示すものの意。特にプログラミングにおいては、アドレスを指し示すものに関してポインタと呼称することが多い。~ この他、オブジェクトを指し示していたり、関数を指し示していたり(実態は、いずれもそれらの保持されているメモリの先頭アドレスである場合が多い)非常に幅広い使い道を持つ。~ [[C>プログラミング用語#C]]/[[C++>プログラミング用語#cpp]]を学ぶ上での鬼門とされ、よく「[[アセンブラ>プログラミング用語#assembler-ja]]を学べば簡単」といわれるほど、その概念の理解は一般に困難とされる。~ [類][[参照>プログラミング用語#ref]] -&aname(pointer_val){ポインタ変数(~へんすう)};~ 多くの場合、プログラムにおいてポインタを活用する時、そのポインタが「どこ」を指しているのかを保持しておく必要がある。~ その場合に用いられるのがポインタ変数と呼ばれる変数である。~ ポインタ変数は、先の説明どおり、ポインタがどこを指し示しているのかを保持する変数で、多くの場合にアドレスを保持する。~ ただし実態は変数なので、ポインタ操作を介さなければ、通常の変数のように活用することが出来る。(推奨はされていないので、行うべきではない)~ 例えば[[malloc>プログラミング用語#malloc]]などで確保したメモリ領域の先頭アドレスを受け取るためにポインタ変数を用いる。~ 一旦ポインタ変数にアドレスを保持しておけば、以後はそのポインタ変数の値とポインタを組み合わせて使うことで柔軟な操作を実現できる。 **よ [#x279567a] -&aname(fairy){妖精さん(ようせい~)};~ 長時間プログラミングをしていると見えてくるとか、眠気がピークに達した時に、プログラマの代わりにとっても不思議なコードを記述してくれるとか、そんな噂が耐えない不思議な生き物。~ しかし、これまで第三者によって妖精さんが観測されたことは無く、実在するのかは定かでない。~ 「妖精さんが・・・」という言葉が頭をよぎった、あるいはそういった発言が見られた時点で、その人はある種の末期状態にあると判断することのできるので、ある種の基準として企業では幅広く利用されている。~ 優良企業であればその時点で有休や睡眠などを勧められるが、劣悪な就労環境であればデスマーチが終わるまで放置されることも少なくない。~ 後者の場合、労災が認められるケースが多数を占めるので、あきらめずに粘り強い交渉をしていくことが重要である。~ 当然、その際に転職活動も忘れてはならないことを付け加えておく。 *プログラミング用語の解説サイト [#e2a8b261] :[[パソコン用語辞典2007-08年版 - ASCII.jpデジタル用語辞典:http://yougo.ascii.jp/caltar/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8]]| ''期間限定'' - 提供期間は2008年中~ [[窓の杜 - 【NEWS】アスキー、約9千項目の辞典「パソコン用語辞典2007-08年版」のPDF版を無償公開:http://www.forest.impress.co.jp/article/2008/09/01/pcyougodicpdf.html]] :[[IT用語辞典 e-Words>http://e-words.jp/]]|運営:株式会社インセプト (Incept Inc.) :[[通信用語の基礎知識:コンピュータ>http://www.wdic.org/d/COMP]]|運営:NPO 通信用語の基礎知識 編纂委員会 :[[プログラミング用語辞典>http://ew.hitachi-system.co.jp/p/c-programming.html]]|運営:(株)日立システムアンドサービス :[[プログラミング用語一覧>http://www.infogogo.com/id/606774]]|source: Wikipedia , license: GFDL,運営:infogogo.com :[[C/C++マニュアル>http://www.db.is.kyushu-u.ac.jp/c/man.html]]|用語、記号・キーワードなど。 運営:九州大学 大学院システム情報科学研究院 金子研究室 :[[プログラミング辞書>http://www.kab-studio.biz/Programing/Dictionary/index.html]]|「 Visual C++ によるC++ ウィンドウズプログラミング」に関係した単語。運営:個人サイト KAB-studio :[[情報処理推進機構:セキュリティセンター:サポート情報:用語集:http://www.ipa.go.jp/security/glossary/glossary.html]]|ネットワークセキュリティ関連用語集、コンピュータウイルス用語集など。運営: 独立行政法人 情報処理推進機構:セキュリティセンター(IPA/ISEC) :[[翔ソフトウェア (Sho's) - オブジェクト指向:http://www.shos.info/develop/oo/ooword.html]]|オブジェクト指向の基本的な用語。運営: 個人サイト 翔ソフトウェア (Sho's) :[[UMTP Japan - 用語標準:http://www.umtp-japan.org/modules/data5/]]| UML2.0に対応した用語集、PDF Document。運営: UMTP/Japan UMLモデリング推進協議会 :[[ソシオメディア - 用語:https://www.sociomedia.co.jp/category/glossary]]| ユーザーインターフェース設計に関連する用語を紹介するグロッサリー。 運営:ソシオメディア株式会社 Sociomedia, Inc. *コメント [#fc387de7] #comment // **おまけ [#m2b65e17] // ***ソースコード検索 [#s3c5fa40] // -[[見つけて得するソースコード専用の検索エンジン - @IT>http://www.atmarkit.co.jp/fjava/column/andoh/andoh33.html]] // -[[gonzui: ソースコード検索エンジン>http://gonzui.sourceforge.net/]]