[[プログラミングスレまとめ in VIP]] *プログラミング用語解説 [#yad1e869] #contents **表記に用いられている記号 [#b5b871d4] [関]:関連した語句を掲載。~ [類]:類義/類似した語句を掲載。~ [反]:対義語を掲載。~ [n]:複数の意味がある場合、角括弧内に数字を入れて、よく使われている、あるいはより一般的であると考えられるものから順に解説している。 **A [#qed84927] -&aname(android){Android(あんどろいど)};~ [1] Googleが旗振り役を務めて進行する、次世代携帯電話用ソフトウェアプラットフォームのこと。~ LinuxベースのOSとミドルウェアで構成される。~ [2] その開発に使われるライブラリのこと。~ 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コードの一覧を参照することが出来る。 **B [#m66f31e8] -&aname(bsd){BSD(びーえすでぃー)};~ BerkeleySoftwareDistributionの略。~ 広義にはカリフォルニア大学バークレー校によるソフトウェア配布物全般を指すが、通常BSDといえば、FreeBSDやNetBSD、OpenBSD、DragonFlyBSDに代表されるUNIXクローンのことを言っているとみてまず間違いない。 **D [#jaa09837] -&aname(d){D(でぃー)};~ D言語とも。~ [1] Digital Mars社のウォルター・ブライトが中心となって、C言語の後継を目指して開発されているマルチパラダイムプログラミング言語のこと。~ [2] システム情報取得ツールDTraceに向けて用意されたスクリプト言語~ [3] マイクロソフトが開発中の、非開発者を対象とした宣言型言語。 -&aname(debug){debug(でばっぐ)};~ バグを取り除く作業のこと。卓越したドMプログラマになると、この作業が快感でたまらなくなる。~ 企業に入ると、普段のコーディングはてんでダメなのに、debugになるとやたらすごい能力を発揮する人が居るという、そんな作業。~ 基本的には重箱の隅をつつくような地味な作業から、仕様通りに動かないプログラムを動くようにする作業までの幅広い作業全般を指す。~ 日本で最も有名かつ優秀なdebugチームは、任天堂の擁するマリオクラブだと思う。たぶん。 **G [#ffa8a82b] -&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汚染によるものである。~ **M [#tb20bd06] -&aname(malloc){malloc(えむあろっく/まろっく)};~ C言語において、動的にメモリを確保するためのひとつの方法。~ alloc系関数の一種で、プロトタイプは~ void *malloc(size_t size); sizeバイトを確保し、その領域へのポインターを返す。メモリの内容はクリアされないので、利用する前には初期化が必要になる。また、返されるのが汎用ポインタであるので、適切な型にキャストしてやる必要が生じる。確保したメモリ領域は自動的に解放されないので、適切なタイミングで解放してやる必要がある。 -&aname(matz){Matz(まつ)};~ Rubyをつくった人のいいおじさん。まつもとゆきひろのこと。~ 日本が誇るハッカーで言語ヲタク。クリスチャンでもある。~ 国内有数の「物言うハッカー」としても有名。 **N [#a443400a] -&aname(new){new(にゅー)};~ C++言語において、オブジェクトのインスタンスを作成する時に用いる演算子。~ また、Cプログラマが、C++を使ったときにまず感動する演算子でもある。~ メモリの確保とコンストラクタの呼び出しなど、これまで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(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 **R [#rb5bbc30] -&aname(rad){RAD(らど)};~ [1] Rapid Application Developmentのこと。~ プログラム開発手法の一つで、プロトタイプを何度も作りながら、目的とする完成形に近づけていく開発手法をさす。~ [2] RAD環境のこと -&aname(radd){RAD環境(らどかんきょう)};~ プログラムの作成を、高速かつ確実にするために特別に作成された統合開発環境のこと。~ 特に、GUI部分を要する複雑なアプリケーションの開発が容易に出来るものをさす。~ 代表的なものにDelphi、NetBeans、Visual Basic、Visual C#などがある。~ [類] [[統合開発環境>プログラミング用語#ide_ja]] -&aname(rms_full){Richard Mathew Stallman(りちゃーど・ましゅー・すとーるまん)};~ フリーソフトウェア活動家で、GNUの親玉にして、グルクラスのハッカー。~ 日本国民から見れば、某宗教団体教祖様を髣髴とさせる風貌の、独身ヒゲ親父。~ 欧州の絵画に登場する、キリストの風貌にも似てるかも。~ どちらにせよ、宗教家風味な風貌をしてることに違いは無い。~ でも、本人は無神論者。~ ただし、GNUという宗教の教祖であると言っても過言ではないと思う。~ -&aname(rms){RMS(あーるえむえす)};~ [[Richard Mathew Stallman>プログラミング用語#rms_full]]のこと。~ -&aname(ruby){Ruby(るびー)};~ [[Matz>プログラミング用語#matz]]が作った純国産オブジェクト指向スクリプト言語。別名MatzLisp。~ **S [#l7a7b937] -&aname(scheme){Scheme(すきーむ)};~ その言語使用はA4で50ページ程度しかないという、言語使用の小ささが売りのLISP方言。~ 最近のプログラム言語の機能でも、SchemeやLISPのものを参考にして作られた機能が数多くある。(call/cc、lambdaなど) -&aname(sicp){SICP(えすあいしーぴー)};~ Structure and Interpretation of Computer Programmingのこと。邦題は計算機プログラムの構造と解釈。魔術師本、紫本などとも。~ MIT発のプログラミング初等教育に用いられる教科書で、Schemeを使ったいかに計算機がそのプログラムを理解するのか?という立場に立った解説がなされている古典的な書籍。~ どんなプログラマでも一度は読んでおくべきなどと勧められるが、訳書第2版の評判が芳しくなく、かといって原著にあたるのも骨が折れるという歯がゆい思いをさせてくれる書籍としても有名。~ 書かれている内容はMITのお偉いさんが書いただけあってすごい。~ 演習問題なども充実していて、スキルアップにはもってこいの一冊。~ 値段が高くて買えないという人は、原著がwebで無償公開されているので、そちらで学習するのもあり。 -&aname(solaris){Solaris(そらりす)};~ 太陽のロゴがトレードマークの、Sun MicrosystemsによるUNIX。~ 近年オープンソース化されて話題を呼んだ。~ Linuxなどとは違う、ホンモノのUNIX(プラス、大企業のお墨付き)として動作実績を重視する現場、ミッションクリティカルな現場、サーバシステム、一部のマニアがデスクトップ用途になど、幅広く支持を集めている。~ フリー版に関しては、GNU謹製ツールをサクサク使うには、ちょっと面倒な設定が必要とか、フリーなのにATOK使えるの!?スゲーとか、そんな話ばかりをよく聞く。真偽のほどは定かではない。 **あ [#d6d70c3e] -&aname(assembler-ja){アセンブラ};~ [1] 英語ではassembler。字面のとおり、アセンブルを行う者の意。コンパイルに対するコンパイラとおなじ位置づけの言葉。~ [2] アセンブラによってアセンブルすることのできる、機械語と一対一で対応したプログラム言語のこと。ニーモニック。 -&aname(assemble-ja){アセンブル};~ 英語ではassemble。アッセンブルとも。~ コンパイルが機械語と一対一対応でないソースコードを機械語に翻訳する作業なのに対して、アセンブルは機械語に一対一で対応したソースコードを機械語に翻訳する作業を指す。 **い [#sb6c24f4] -&aname(India-ja){インド};~ 南アジアに位置する、インド亜大陸の大部分を占める連邦共和国。~ 99x99の掛け算まで暗記させられるとか、小学校5年生で日本の中学校後半レベルの数学教育がなされているとか、数学教育に熱心なことで有名。~ そのせいか、非常に優秀なプログラマを多く擁する。~ これに人件費の安さもあいまって、現在世界からガンガン仕事を取り入れ、発展を続ける国である。~ 日本のITドカタなど、彼らに比べればカスだという業界関係者もいるとかいないとか。 **う [#h5f610dd] -&aname(wiz){ウィザード};~ 本来は魔術師の意味だが、魔術師のようにプログラムを操る上位のハッカーをこう呼ぶ。~ ここにある種のカリスマ性が加わると、グルと呼ばれるようになる。~ 基本的に変人が多いので、コミュニケーションをとるときには注意が必要。 **お [#g9f74ff3] -&aname(object-ja){オブジェクト};~ プログラミングをする上で重要な概念のひとつ。~ プログラム上で登場する、各要素のこと。~ 狭義には、データとそのデータに対して行う操作をパックしたものを指す。~ 広義には、データそのものを指す。~ 例)変数オブジェクト、クラスオブジェクトなど。 -&aname(oo-ja){オブジェクト指向(~しこう)};~ [1] プログラムをオブジェクトの集まりとして表現しようという概念。~ [2] プログラム上で発生するすべての問題を、簡単に解決してくれるのではないかという幻想を抱かせる魔法の言葉。もちろん、そんなおいしい話は存在しない。~ [関] ~開発、~設計。 -オブジェクト指向開発(~しこうかいはつ)~ オブジェクト指向を適用した開発案件のこと。~ 継承、多態勢、カプセル化の三つを基本的な柱として、保守性、拡張性に優れた開発を目指す。~ [類] オブジェクト指向設計 -&aname(ood-ja){オブジェクト指向設計(~しこうせっけい)};~ オブジェクト指向を適用した設計手法のこと。~ 設計段階にまでオブジェクト指向を引き合いに出し、根本的な設計から狭義のオブジェクトとなるものを洗い出してプログラムの設計を行う。~ [類] オブジェクト指向開発 **き [#y86b23fb] -&aname(Project_book-ja){企画書(きかくしょ)};~ こんなアプリはどうでしょう?こんなアイディアおもしろくないですか?というアピールを上司にして、開発費を下ろしてもらったり、顧客に対して提案をするときにまず必要になる文書。新入社員が訳もわからず書かされ、上司に罵倒されるための道具でもある。~ ここで提出された企画書を煮詰めていって、仕様書などが作成される。~ -&aname(kikakudaore){企画倒れ(きかくだおれ)};~ 企画書の段階では、とってもおもしろそうだったんだけどねぇ・・・。 **く [#vae5f363] -&aname(guru){グル};~ guruとも。~ 最高位のハッカーに与えられる敬称。~ カリスマ性を備えたウィザードのことをこう呼ぶ場合が多い。~ 現在、グルと呼ばれるハッカーは世界に数人しか居ない。 [類] ウィザード **こ [#eb5eb957] -&aname(compiler-ja){コンパイラ};~ 英語ではCompiler。~ 英語の字面を見れば推測できる通り、コンパイルを行う者の意。~ プログラムでは、実際にコンパイル作業を行ってくれるソフトウェアの事を指す。 -&aname(compile-ja){コンパイル};~ 英語ではCompile。もともとは資料を収集するとか、辞書やリストを編集するという意味を持つ動詞。~ 転じて、機械語と一対一に対応しているわけではないソースコードを、機械語に翻訳する作業のことを指す。~ 広義にはリンクまで含めた作業を指すが、狭義にはリンク前のオブジェクトファイルと呼ばれるファイルを出力するまでの作業のことを指す。~ [類] [[アセンブル>プログラミング用語#assemble-ja]] **し [#g1b69d8b] -&aname(specifications-ja){仕様書(しようしょ)};~ プログラムがどう動作するべきか、どのような状態でどのような処理を行うべきかを細かく指示した文書。ここに書かれていることであれば、一見バグと思われる動作でも「仕様ですから」と言って切り抜けることが出来る。プロジェクトが進むにつれて、頻繁に書き換わることもあるため、プログラマのためのデスノートと呼ばれることもある。 -&aname(siyou-desukara){仕様ですから(しよう~)};~ 「大豆ですから」のごとく発するべき、困った時の伝家の宝刀。~ この一言で、大多数の顧客は黙り込むという伝説が語られるほど、有名な一言である。~ 例)Windows Meのブルースクリーン?あぁ、それ、仕様ですからww **そ [#v515581e] -&aname(source_code-ja){ソースコード};~ 英語ではSource code。原始プログラムとも訳される。~ 各プログラム言語で書かれた、コンパイル前のテキストファイルのこと。~ コンパイラが適切にコンパイルを行うために、ソースコードは次の決まりをもって書かれる。~ ・内容は、用いたいと思っているプログラム言語の文法に従う。~ ・文字の形や色といった、余計な情報がファイルに付加しない。(純粋なテキストファイルとする)~ ・コンパイラで指定された文字コードを用いて記述する。 -&aname(source-kudasai){そのソースください};~ 自分のやりたいことを、他の誰かが実現している時に発するべき言葉。空気を読まずに発すると、怪訝な顔をされることがある。もし自分が言われた時は、きちんとライセンスに同意させた上でソースを渡してあげよう。 **て [#i55eaab0] -&aname(design_pattern-ja){デザインパターン};~ プログラミングでみんなが「あるあるww」とうなずけるパターンに対して適用可能な、効率の良い解法のこと。~ 様々なパターンがあり、それぞれに大層な名前が付いているが、発動にすごいスキルが必要とか、事前にトラップカードを伏せておかなくちゃいけないなんてことは一切無い。~ ライブラリのロードぐらいは必要かもしれないが・・・。~ このデザインパターン、汎用性のあるパターンが多く収録されているため、あらゆる問題をデザインパターンで解決しようという気になったり、問題にブチ当たるとまずデザインパターンでなんとかできないか考えるようになってしまう一種の病気を発病する危険性を孕んでいる。それなりにプログラミングの学習が進んでからチャレンジしましょう。 -&aname(death){デスマーチ};~ あー。。。納期まであと三日かぁ。。。~ 進捗?昨日の申し送り段階で、80%いったぐらいじゃない? -&aname(debugger-ja){デバッガ};~ [1] debugを行うソフトウェアのこと。debugger。~ 有名なものではGNUによるgdbやBorlandによるTurbo debugger、マイクロソフトによるワトソン博士などがある。~ 原則として、プログラム言語に依存することなく用いることが可能である。~ [2] debugを行う人のこと。マゾヒスト。ドM。~ [3] プログラムは大してかけないのに、他人のプログラムのバグを見つけ、原因を特定するのが上手な、職場に一人はいるプログラマに対して用いられる敬称。~ 例)~ 「あの人、遊んでますけどいいんですか?」~ 「あぁ、彼はデバッガだから、開発の初期段階では出番が無いんだよ」~ 「でも、2chとかしてますよ?」~ 「いいんだよ。デバッグのときに人の3倍は仕事するんだし。」 -&aname(debug-ja){デバッグ};~ [[debug>プログラミング用語#debug]]のこと。 **と [#u77da467] -&aname(ide_ja){統合開発環境(とうごうかいはつかんきょう)};~ [[IDE>プログラミング用語#ide]]とも。~ デバッガやエディタなど、プログラムに必要な環境を総合的に提供してくれるソフトウェアのこと。~ 特に高機能なものになると、プログラムをプロジェクトという単位で管理する機能やGUIフォームデザイナを提供してくれる。~ VisualStudioやEclipseといったものが有名。~ [類] [[RAD環境>プログラミング用語#redd]] **ぬ [#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するものの意。~ よく言われることだが、クラッカーやスクリプトキディとは違うので注意。~ それらとの最大の違いは、ハッカーが好奇心で突き動かされているという点。~ 具体的には、悪さをしたり、人が困る様がおもしろかったりするわけではなく、純粋に興味や知的好奇心、自分自身の正義のために技術力を使おうと考える点が異なる。~ 無精で短気で傲慢という三条件を満たす人物は、その素質があるといっていい。~ ただし、ハッカーとは周囲から呼ばれる敬称であり、自分自身で名乗るものではない。~ 自分自身で名乗ったら最後、ハカーと呼ばれることは間違いない。~ ハッカーの中でも特に優れた技術を持つものをウィザード、そこにカリスマ的人間性が加わったものや、ウィザードの中でも突出した変人をグルと呼ぶ場合がある。 **ふ [#b60c3505] -&aname(first_class_object-ja){ファーストクラスオブジェクト};~ 英語ではfirst class object。~ SICPによると、「変数として名前が付けられて、手続きに引数として渡せて、手続きの結果として返せて、データ構造に組み込める」というオブジェクトのこと。~ 多くは変数そのものを指すが、LISPでは手続きもファーストクラスオブジェクトとして実装されている。~ -&aname(breakpoint-ja){ブレークポイント};~ プログラムをデバッグする際に指定する、プログラムの動作を一旦停止させたい場所のこと。ブレイクポイントとも。~ -&aname(blowser_game){ブラウザゲー};~ ちょっとした気分転換にはじめたはずが、気づくと日付が変わっている。~ そんなタイプのお手軽ゲームのうち、ブラウザ上で遊べるものをさす。~ 特にプログラマスレでは、デバッグ中やコーディング中の気分転換として人気が高い。~ 反面、その中毒性の高さから、自らブラウザゲーを禁じている住人も少なくない。~ VIPで立つ関連スレッドは、紛らわしいスレタイから嫌われることも多い。 -&aname(puyo_puyo){ぷよぷよ};~ その昔、「のーみそこねこね」のキャッチフレーズで一世を風靡したコンパイルという企業が販売していたパズルゲームシリーズの名称。~ 同じ色の四つのぷよを集めると消え、得点になるという単純なルールからファンも多く、仕組みそのものも単純であることから、プログラミングの課題として使われることも多い。~ 基本的なルールは~ ・画面上部からふたつひと組の「ぷよ」が落ちてくる~ ・同じ色のぷよは、四つくっつくと消える~ ・画面内がぷよで一杯になってしまったらゲームオーバー~ というもの。~ 実装する時にポイントとなるのは~ ・二次元平面をどう表現するか?~ ・壁際における「ぷよ」の探索をどう実装するか?~ ・「ぷよ」同士が四つ以上くっついたことをどう判定するか?~ ・くっついた「ぷよ」を画面から消した後の処理はどう行うか?~ ・連鎖判定処理をどのように実装するか?~ などで、課題として用いられる場合、プログラミング初級~中級者向けとされる場合が多い。~ なお、初級~中級者に実装させる場合には、画面描画など面倒な部分をライブラリとして提供することも多くあり、APIや他人の作った関数の使い方を学ばせる教材としても適しているとされる。 **ほ [#p4c5cf99] -&aname(pointer){ポインタ};~ 何かを指し示すものの意。特にプログラミングにおいては、アドレスを指し示すものに関してポインタと呼称することが多い。~ この他、オブジェクトを指し示していたり、関数を指し示していたり(実態は、いずれもそれらの保持されているメモリの先頭アドレスである場合が多い)非常に幅広い使い道を持つ。~ C/C++を学ぶ上での鬼門とされ、よく「アセンブラを学べば簡単」といわれるほど、その概念の理解は一般に困難とされる。~ [類][[参照>プログラミング用語#ref]] -&aname(pointer_val){ポインタ変数(~へんすう)};~ 多くの場合、プログラムにおいてポインタを活用する時、そのポインタが「どこ」を指しているのかを保持しておく必要がある。~ その場合に用いられるのがポインタ変数と呼ばれる変数である。~ ポインタ変数は、先の説明どおり、ポインタがどこを指し示しているのかを保持する変数で、多くの場合にアドレスを保持する。~ ただし実態は変数なので、ポインタ操作を介さなければ、通常の変数のように活用することが出来る。(推奨はされていないので、行うべきではない)~ 例えば[[malloc>プログラミング用語#malloc]]などで確保したメモリ領域の先頭アドレスを受け取るためにポインタ変数を用いる。~ 一旦ポインタ変数にアドレスを保持しておけば、以後はそのポインタ変数の値とポインタを組み合わせて使うことで柔軟な操作を実現できる。 **よ [#x279567a] -&aname(fairy){妖精さん(ようせい~)};~ 長時間プログラミングをしていると見えてくるとか、眠気がピークに達した時に、プログラマの代わりにとっても不思議なコードを記述してくれるとか、そんな噂が耐えない不思議な生き物。~ しかし、これまで第三者によって妖精さんが観測されたことは無く、実在するのかは定かでない。~ 「妖精さんが・・・」という言葉が頭をよぎった、あるいはそういった発言が見られた時点で、その人はある種の末期状態にあると判断することのできるので、ある種の基準として企業では幅広く利用されている。~ 優良企業であればその時点で有休や睡眠などを勧められるが、劣悪な就労環境であればデスマーチが終わるまで放置されることも少なくない。~ 後者の場合、労災が認められるケースが多数を占めるので、あきらめずに粘り強い交渉をしていくことが重要である。~ 当然、その際に転職活動も忘れてはならないことを付け加えておく。 *プログラミング用語の解説サイト [#e2a8b261] :[[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 *コメント [#fc387de7] #comment // **おまけ [#m2b65e17] // ***ソースコード検索 [#s3c5fa40] // -[[見つけて得するソースコード専用の検索エンジン - @IT>http://www.atmarkit.co.jp/fjava/column/andoh/andoh33.html]] // -[[gonzui: ソースコード検索エンジン>http://gonzui.sourceforge.net/]]