Top / Docs / プログラミング用語

プログラミング用語解説#

表記に用いられている記号#

[関]関連した語句を掲載。
[類]類義/類似した語句を掲載。
[対]対義語を掲載。

A#

  • Android(アンドロイド)

    1. Googleが開発した携帯電話用ソフトウェアプラットフォーム。LinuxベースのOSとミドルウェアで構成される。
    2. その開発に使われるライブラリのこと。

JavaでありながらJavaでないというポジションが、Sun様からやや嫌われぎみ。
そんなこともあってか、Eclipseと親和性が高く、Eclipseを用いて手軽にAndroid向けソフトウェアが書けるようになっている。

  • ASCIIコード(アスキー -)
    文字を取り扱う上での一番基本的な半角英数字・記号の規格。単にASCIIとも。~
    UNIX系システムでは、man ascii とすることでASCIIコードの一覧を参照できる。

  • Binary(バイナリ)
    本来は「2値の」「二つの」「双対の」といった意味。
    転じて、プログラミングにおいては機械語表現されたファイル、すなわちコンパイル済みのファイルを表すことが多い。

    バイナリファイルの中でも、特にリンク前のものはオブジェクトファイルと呼ばれ、リンク後のものは実行ファイルと呼ばれる。
    実際にはコンピューター上で扱われるすべてのファイルがバイナリだが、テキストデータとして認識できないもの=バイナリデータという扱いを受けることが多く、テキストとは区別される。

    画像や音声もバイナリファイルである。

  • BSD(ビーエスディー)
    Berkeley Software Distribution の略。~
    広義にはカリフォルニア大学バークレー校によるソフトウェア配布物全般を指すが、
    通常BSDといえば、FreeBSDやNetBSD、OpenBSD、DragonFlyBSDに代表されるUNIXクローンのことを言っているとみてまず間違いない。

C#

  • C(シー)
    カーニハンとリッチーによりUNIXを記述するために開発された、なんて伝説のある言語。
    当時の言語としては汎用性が高く、修得も容易だったとされることから広く普及した。

    でも本当は、優れたOSであるUNIXがCで書かれていたために、UNIXをいじるにはCの知識が必須だったからというだけで、別にCが優れた言語だからという訳ではない。
    中級言語などと呼ばれ、アセンブラに近い処理からある程度抽象化した処理まで幅広くこなせる。

    数々のシステムで標準言語として用いられ、実に多くの開発現場で現役として働いている。~
    「まず勉強しようと思うなら、Cから始めておけば間違いないよ。」などという悪魔の囁きが実に多くの場所でなされ、今日もまた新たな被害者を生み出している。

  • C#(シーシャープ)
    マイクロソフト社によって開発された言語。
    .NET Frameworkとは切っても切れない間柄で、.NET Frameworkと共に日々進化している。

    言語の設計としてはJavaを参考にした部分が大いにあり、早くからジェネリックス型などの機能を積極的に取り込んでいた。
    RMS曰く「クソM$の特許行使が怖いから使うな。」と言われた言語だが、
    仕様公開は積極的&標準化機構に任されているなど、同社の対応はかなり融和的である。

    ゲームエンジンへの指示言語としての利用が多く見られる。

  • CUI(シーユーアイ/クイ/キューイ)
    コマンドプロンプト/ターミナルのような、文字ベースの操作画面。Character-based User Interface や Console User Interface の略。
    特にUNIX系OSでは広く利用されており、スクリーン制御ライブラリ curses/ncurses などを用いることで、
    通常よりも自由度の高い端末制御を行い、GUIに似た見た目や操作感を文字主体のユーザーインターフェイスで作り出すことができる。

    [関]端末
    [対]GUI

  • C++(シープラスプラス/シープラプラ)
    ・オブジェクト指向プログラミングは、すべての問題を解決してくれる神様みたいなものじゃない。
    ・Cでプログラミングするなんてバカらしい。

    ・安全じゃないプログラムの作り方というものを、俺が教えてやろう~
    の三つを信条に設計された言語。っていうか言語仕様膨大すぎ。
    おかげさまで、言語仕様に即した入門書なんてそうそうないし、C++を完全に理解した人間はおそらく存在しない。

    大変ググりづらい単語であり「cpp」での検索も検討しよう。

D#

  • debug(デバッグ)
    バグを取り除く作業のこと。卓越したドMプログラマになると、この作業が快感でたまらなくなる。
    企業に入ると、普段のコーディングはてんでダメなのに、debugになるとやたらすごい能力を発揮する人が居るという、そんな作業。

    基本的には重箱の隅をつつくような地味な作業から、仕様通りに動かないプログラムを動くようにする作業までの幅広い作業全般を指す。~
    日本で最も有名かつ優秀なdebugチームは、任天堂の擁するマリオクラブだと思う。たぶん。

  • Debugビルド(デバッグ -)
    デバッグ用のビルド。プログラムの動作状況を追跡し、整合性を確認、問題点を特定するための様々な情報が付加されている。このバイナリをそのまま出荷してはいけない。
    しかし、時折デバッグビルドでは発生しないのにリリースビルドでは発生する問題、というものが出現し、
    その時我々はこnqあwせdrftgyふじこlp;@:「」~
    別名をDevelopmentビルドといい、出荷用ビルドを指す対義語はReleaseビルド、もしくはDeploymentビルド。

  • Delphi(デルファイ)
    Embacarderoによって開発されている、Windows向けRADツール。
    Pascalを独自にオブジェクト指向拡張したDelphi言語を用いて、プログラミングを行う。

    驚異的なコンパイル速度と、よく作りこまれたフレームワークが特徴で、熱狂的なファンも多い。

  • Deploy(デプロイ)
    配備、すなわち実際に製品として動作させるために構成ファイル達を適所に配置すること。Release(出荷)よりも進んだ段階。

F#

  • F#(エフシャープ)
    歴史ある関数型プログラミング言語Lispと人気の関数型プログラミング言語Haskellを押しのけて、
    VisualStudioに統合された関数型プログラミング言語第一号となった、OCamlベースのプログラミング言語。~
    構文はほぼOCamlそのもので、F#独特の拡張は、.NETテクノロジに関連した部分しか感じられない。

  • Free Pascal(フリー パスカル)
    略称はFPC (Free Pascal Compiler)。
    オープンソースで開発されている、Pascal系のプログラミング言語。

    DelphiやMacPascalなどと互換性がある。~
    クロスプラットフォームであり、さらに、Lazarusを使えばIDEによるポトペタGUI開発が行えるという強みがある。

  • Fortran(フォートラン)
    ヨード卵に似ているけれど、こちらはれっきとした科学技術演算用プログラミング言語。
    現存する最古の言語だが、現在も計算工学分野など、科学技術系のプログラミングでは需要が高い。

    もともと科学技術演算用に最適化されているので計算速度は恐ろしく速い。
    現在利用されているFortranには大きく分けて、Fortran77以前、Fortran90以降が存在し、年代が上がるごとに変態度が増す。

    Fortran90あたりを学んでおけば、もしかしたら計算工学系の分野からお呼びがかかる様なことがあるかもしれない。
    もちろん、新規開発ではなく、既存プログラムの保守だがね。

    「やーっ!ふぉー!フォーットランランラン!!」*1と歌うと変態がニヤつくらしい。

G#

  • GNU(グヌー)

    1. RMS率いるフリーソフトウェアプロジェクト。“GNU’s Not Unix!“の略称。

ソフトウェアに自由を!を合言葉に、クローズドソースなソフトウェアを駆逐しようと日々尽力している。
主たる目標は、自由なソフトウェアで固められたUNIX互換のオペレーティングシステム(GNUシステム)を作り上げることだが、それ以外の活動も活発。
特に注目すべきは、コピーレフトライセンスとして有名なGNU GPLとGNU LGPLの策定である。
このライセンスを通し、オープンソースソフトウェア界に対して一流ベンダー並みの影響力を発揮している。

  1. 前述のGNUシステムを構成するソフトウェア群。bash も gcc もこの成果物である。

Linuxを中核に据えたGNU/Linuxがよく知られているが、プロジェクトが目標としているのはHurdというコアを用いたGNU/Hurdの完成である。
Hurdの開発は難航しているうえ、ソフトウェア業界が日々変化し続けていることから、GNUシステムの完成は永遠に無いと予測する技術者さえいる。

  • 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

  • GNU LGPL(グヌーエルジーピーエル)
    単にLGPLとも。
    正式名称をGNU Lesser General Public Licenseという、GNUが提唱するソフトウェアライセンス形態のひとつ。
    GNU GPLと違い、本体に手を入れない限り、クローズドな開発が可能であるため、ライブラリの類に適用されることが多い。

    GPL汚染の危険性が低いことから人気の高いライセンス形態であるが、
    そこはコピーレフトを提唱するGNUの唱えるライセンスだけに、利用には十分な注意とライセンスへの理解が必要である。

  • GPL汚染(ジーピーエルおせん)
    作成したソフトウェアが、GNU GPL2条および3条の縛りによってGPL化されてしまう現象のこと。
    例えば、自社製品の内部コマンドとして、GNU GPLでライセンスされたソフトウェアの一部のソースコードをコピーし、用いたとする。
    (GNU GPLでライセンスされたソフトウェアは非常に多いため、便利なソースコードが多く、こうして利用してしまう技術者も少なくない。)

    そうすると、そのソースコードはすべてGPLとして配布されなければいけなくなる。
    より恐ろしいのは、GPLでライセンスされたライブラリを、自分のソフトウェアにリンクした場合にも、GNU GPL3条の縛りによってGPL化しなければならなくなる場合である。

    主として、この二つの場合をGPL汚染と呼ぶ。
    本スレッドでも話題になる場合があるが、GPLでライセンスしましたと書いたソースコードをスレッドに貼り付けた場合、
    GNU GPLを拡大解釈すれば、そのスレッドに貼り付けられたほかのソースコードもすべてGNU GPLでライセンスされなければいけないと読み取ることも可能なことから、
    冗談交じりにスレッドが汚染されたという話題が飛び交うのである。

    スレッドの汚染は冗談だとしても、オープンソースの利用が活発になっている昨今、プロプラエタリな環境でコーディングをしているプログラマにとって、特に注意しなければならない問題であるといえる。~
    最近よく耳にする、busyboxを自社製品に取り込んだことによって起こっているGPL訴訟の大部分は、このGPL汚染によるものである。

  • GUI(ジーユーアイ/グイ/グーイ)
    Graphical User Interface の略。
    画像をベースにしたインターフェイスの総称で、ボタンやコンボボックスなどを含む、WindowsあるいはMacで採用されている標準的なインターフェイスのこと。

    [対]CUI

I#

  • IDE(アイディーイー)
    統合開発環境のこと。

  • inheritance(インヘリタンス)
    オブジェクト指向プログラミングにおける継承のこと。

  • instance(インスタンス)
    メモリ上に実際に配置されたオブジェクトのこと。~
    オブジェクトの実体。

J#

  • Java(ジャバ)
    スペルが同じなので混同しがちだが、コーヒーで有名なジャワ島のジャワとは発音が違う。
    コーヒーマークといまいち目立たない奇妙なキャラクターが有名な、Oracle社によるプログラミング言語。

    Cの親戚みたいな文法をしていて、C系言語の修得者なら、比較的容易に身に付けることができるとされている。
    目指すところは「一回書いてコンパイルしたバイナリは、どの環境でも動く」というものだが、所詮それは理想論。

    むしろ世間的には、言語レベルでGUIとスレッドをサポートしている点が、当時高評価を受けた。
    後に登場するC#言語などに強い影響を与えたほか、後発のC#言語に奪われつつあるシェアを奪還するためか、近年オープンソース化もなされた。

    あーもう、これはだめかもわからんね。

L#

  • Lazarus(ラザルス)
    Free Pascal向けに開発された、Delphiによく似たRAD環境。~
    GUIの開発にはLCL(Lazarus Component Library)と呼ばれるVCLを手本にしたライブラリや、Qtなどを用いることが出来る。

  • Linux(リナックス/ライナックス/リヌクス)
    フィンランド人のLinusが中心となって作り上げている、フリーなUNIXライクなOS。
    広義にはディストリビューションとよばれる、システムとして使うことのできるものを指し、狭義にはカーネルそのものを指す。

    前者は、後者と明確に区別する意味合いや宗教的な理由から、GNU/Linuxとも呼ばれる。~
    ほとんどの場合開発環境が付属する、サーバシステムを手軽に構築できる、UNIXを使っていた人間には使いやすいなどの理由から、開発畑の人には好まれる傾向にある。

  • Linus(リーナス)
    フルネームはLinus Benedict Torvalds(リーナス・ベネディクト・トーバルズ)。Linux開発の親玉。
    大学院生時代にMINIXに触発されてLinuxの開発をはじめたと言われている。

    辛口な物言いで知られるが、年食って少し丸くなったらしい。~
    [関]優しい終身の独裁者

  • Lisp(リスプ)
    (lambda (comment)
    (setf comment “Common Lisp,scheme,elispなど、多数の派生言語を持つ最古のプログラミング言語の一つ”)

    ‘(“元々は記号処理に用いられ、人工知能分野などで広く使われていた”)
    (if (atomp comment) ‘(“見てわかるように、やたらとカッコが多い言語。あと、方言も多くて何がなにやら。”)))

    ;; きっと、使えるようになれば尊敬の目でみられるんだろうよ。

M#

  • malloc(エムアロック/マロック)
    C言語において、動的にメモリを確保するためのひとつの方法。~
    alloc系関数の一種で、プロトタイプは
void *malloc(size_t size);

sizeバイトを確保し、その領域へのポインターを返す。メモリの内容はクリアされないので、利用する前には初期化が必要になる。 また、返されるのが汎用ポインタであるので、適切な型にキャストしてやる必要が生じる。 確保したメモリ領域は自動的に解放されないので、適切なタイミングで解放してやる必要がある。

  • Matz(マッツ)
    まつもとゆきひろのこと。Rubyを作った、人のいいおじさん。
    日本が誇るハッカーで言語ヲタク。クリスチャンでもある。

    国内有数の「物言うハッカー」としても有名。

N#

  • new(ニュー)
    C++言語において、オブジェクトのインスタンスを作成する時に用いる演算子。
    また、Cプログラマが、C++を使ったときにまず感動する演算子でもある。

    メモリの確保とコンストラクタの呼び出しなど、これまでmallocを使いながらちまちまやっていた処理を一手に担ってくれる、まさに神のような存在。~
    けれども、実はmallocと同様、確保した記憶領域は自分で解放しなくてはいけないことを知り、早々にゲンナリさせてくれる演算子でもある。

  • NULL(ヌル/ナル)
    0、または空値。~
    言語によってはnull、nilとも。

  • Null Pointer Exception(ヌル<ナル>ポインターエクセプション)
    Javaに含まれるクラスのひとつで、例外の一種。参照先がnullな変数やメソッドを呼び出したときに、この例外がスローされる。
    nullチェックをきちんと行えば、まず出会うことのない例外でもある。

  • Null Reference Exception(ヌル<ナル>リファレンスエクセプション)
    コード内に存在しないオブジェクトを参照しようとした時や、nullなオブジェクトを参照しようとした時投げられる例外。.NET系言語で出会うことが多い。

  • NYSL(エヌワイエスエル)
    「煮るなり焼くなり好きにしろライセンス」の略。作成者は稲葉一浩。

・使用料を要求しない
・再配布や転載を制限しない
・改変・利用を制限しない
・変更・一部引用に関して、原作者の許可を取ったり、原作者の著作権表示を含める必要は無い

を柱とする国産のオープンソースライセンス。ライセンス文書も日本語である。
Everyone’sWareを合言葉とし、みんなで使えるソフトウェアのためのゆるゆるなライセンスである。
[類] WTFPL(Do What The Fuck You Want To Public License)

P#

  • Pascal(パスカル)
    Algolの影響を強く受けた教育用途向けプログラム言語。コンパイラ型言語に分類される。
    同時期に開発されたCとは、よく兄弟言語と称されている。

    Cと比べて型に厳密なこと、日常的な英語文法にその記法が近いこと、代入文などで数学的な記法に近い記法を使えることなどから比較的扱いやすく、
    プログラミング言語教育のほか、アルゴリズムを実装するためにもつかわれてきた。
    国内ではTurboPascalが安価で利用できた時代に、ホビープログラマの間で絶大な人気を誇った言語である。

    現在その人気は下火で、利用率も低い。
    もし利用するならば、Pascalを拡張する形で実装されたObject Pascalを利用できる、

    DelphiやFree Pascalなどの各種の開発環境を使うことになる。

  • Perl(パール)
    ラリー・ウォールによって開発された、テキスト処理に主眼を置いたスクリプト言語。
    「ひとつの結果にたどり着くための記述手法が、非常にたくさんある」ことでも有名な言語で、
    今日書いたソースでも3時間後には読めなくなっている可能性がある*2。

    主としてCGIに使われたことで、ウェブの黎明期を支えた。~
    現在でもCPANという強力なライブラリ管理ツールと共に、幅広いソフトウェア分野で利用されている。

  • PHP(ピーエイチピー/ピーエッチピー)
    動的にウェブページを生成することに主眼を置いたプログラム言語。主にサーバサイドで利用される。
    XMLや各種データベースを手軽に扱うための機能が充実していることから、ウェブに関連したアプリケーションの多くがPHPで書かれるようになった。

    その手軽さから初心者向け言語などと呼ばれるが、
    「初心者がウェブアプリを書くな」「言語仕様が不安定」「そもそも初心者向け言語など存在しない」などといった理由から、嫌われることも多い。~
    [類] ASP、JSP

R#

  • R(アール)
    R言語。統計解析向けの言語および実行環境。ベクトル処理や高度なグラフ機能など、統計処理に特化している。

  • RAD(ラド)
    Rapid Application Developmentのこと。~
    プログラム開発手法の一つで、プロトタイプを何度も作りながら、目的とする完成形に近づけていく開発手法や開発環境を指す。
    [類] 統合開発環境

  • Richard Matthew Stallman(リチャード・マシュー・ストールマン)
    フリーソフトウェア活動家で、GNUの親玉にして、グルクラスのハッカー。よくRMSと略される。
    日本国民から見れば、某宗教団体教祖様*3を髣髴とさせる風貌の、独身ヒゲ親父。

    欧州の絵画に登場する、キリストの風貌にも似てるかも。
    どちらにせよ、宗教家風味な風貌をしてることに違いは無い。

    でも、本人は無神論者。~
    ただし、GNUという宗教の教祖であると言っても過言ではないと思う。

  • Ruby(ルビー)
    Matzが作った純国産オブジェクト指向スクリプト言語。別名MatzLisp。

S#

  • Scheme(スキーム)
    A4で50ページ程度しかないという、言語使用の小ささが売りのLisp方言。~
    最近のプログラム言語の機能でも、SchemeやLispのものを参考にして作られた機能が数多くある。(call/cc、lambdaなど)

  • SICP(エスアイシーピー)
    「Structure and Interpretation of Computer Programs」のこと。邦題「計算機プログラムの構造と解釈」。魔術師本、紫本などとも。
    MIT発のプログラミング初等教育に用いられる教科書で、
    Schemeを使い、いかに計算機がそのプログラムを理解するのか?という立場に立った解説がなされている古典的な書籍。

    どんなプログラマでも一度は読んでおくべきなどと勧められるが、訳書第2版の評判が芳しくなく、
    かといって原著にあたるのも骨が折れるという歯がゆい思いをさせてくれる書籍としても有名。
    書かれている内容はMITのお偉いさんが書いただけあってすごい。

    演習問題なども充実していて、スキルアップにはもってこいの一冊。~
    値段が高くて買えないという人は、原著がwebで無償公開されているので、そちらで学習するのもあり。

  • Small Basic(スモール ベーシック)
    Microsoftによる初心者向け言語。
    BASICから難しい仕様を取り除いたらしい。
    ブラウザ上でも実行でき、公式サイトへ作品をアップロードできる。

    VB.NETへの変換機能も搭載している。

  • Solaris(ソラリス)
    太陽のロゴがトレードマークの、Sun MicrosystemsによるUNIX。
    以前オープンソース化されて話題を呼んだ。

    Linuxなどとは違う、ホンモノのUNIX(プラス、大企業のお墨付き)として動作実績を重視する現場、
    ミッションクリティカルな現場、サーバシステム、一部のマニアがデスクトップ用途になど、幅広く支持を集めている。

  • Static(スタティック)
    そんな悪い子のところには、Staticおじさんが来てStaticにされちゃうよ!

V#

  • Visual Component Library (ビジュアル コンポーネント ライブラリ)
    略称はVCL。
    Borland(現CodeGear)が開発した、Windows用の、ポトペタでGUIが設計できる最強GUIライブラリ。

    DelphiやC++ Builderから利用できる。~
    .NET Famework(C#)とVCL(Delphi)の作者が同じであるためインターフェースが似ているが、
    VCLは別途にランタイムを入れる必要が無く、起動速度も普通の実行ファイルと同程度である。

  • Visual Basic(ビジュアル ベーシック)
    Microsoftによるお手軽プログラミング環境。
    「Basic並に手軽に」プログラミング可能で、6.0まではプログラミング経験ゼロの素人でもそれなりのプログラムが書けることと、
    それに伴う人員確保の容易さ、環境そのものの特性からくる、工数の少なさやデータベースとの親和性も相まって、
    数多くの企業で業務用アプリケーションを記述するために用いられた。

    その時代に作られた負の遺産は現代でも行き続け、数多くのプログラマを苦しめているといわれる。
    もうね、正直疲れたんだよ。VB5世代のプログラムの保守なんてさ。

    だってバグだらけなんだもん。前任者探したら、もう退職したってさ。~
    あーあ。ビルゲイツはなんてことしてくれたんだろうか…。

  • Visual C++(ビジュアル シープラスプラス)
    変態的なクラスライブラリことMFCでおなじみのマイクロソフトによるC++言語開発環境。
    Windows上でC/C++プログラムを開発する際の事実上の標準となっており、利用者も数多い。

    一時期は標準対応への遅れや、環境そのもののバグなどが指摘されたが、最近は落ち着いている様子。
    それでもやっぱり「VisualC++だしC99は対応しなくていいや」という風があるのは流石。
    .NET登場以後、Maneged C++(C++/CLI)などという、これまた変態的なC++拡張をサポート。

    無料版が提供されるようになり、
    VC++6当時、少ない小遣いを握り締めながら家電量販店でVC++6 Standard Editionを購入した俺に喧嘩を売っているとしか思えない。~
    なんかね、もう信じられないわ。ビルゲイツが。

  • Visual C#(ビジュアル シーシャープ)
    マニュアル車にずっと乗ってた人が、初めてオートマ車に乗ったときに感じる、
    「ここまで至れり尽くせりだと、人間だめになるだろwwwJKwww」という感覚をプログラミングの世界でも味わわせてくれる、
    MicrosoftによるC#言語開発環境。
    DelphiのVCLを設計した人を引き抜いてまで.NETFrameworkとVC#に力を入れたと言われるほどMicrosoftが本気で取り組んでいる。

    なんだその、言語としてのC#ならそれなりに好きなんだけど、こうもVC#+.NETFrameworkでいろいろ楽にできすぎるとね、
    下手にDLLの関数呼び出さなくちゃいけない時とか、ライブラリに無い機能実装するときとか、ホント、嫌になるよね。~
    よく知らないけど。

Z#

  • Z80(ゼットはちじゅう)
    8080の腹違いの兄妹と噂されている8ビットプロセッサ。「アセンブラ始めたいんだけど」という言葉を聞くとどこからともなく現れる。
    有名どころなのでエミュレータもそこそこあるとかで、運悪く実機が入手できなくてもなんとかなる。

あ#

  • アセンブラ

    1. アセンブリ言語で書かれたプログラムを機械語に変換するソフトウェア。コンパイルに対するコンパイラと同じ位置付けの言葉。
    2. アセンブリ言語。ニーモニックと呼ばれる命令語により、機械語と一対一で書かれる。

い#

  • 引数(いんすう)
    残念、それは「ひきすう」だ。

  • インド
    南アジアに位置する、インド亜大陸の大部分を占める連邦共和国。
    99x99の掛け算まで暗記させられるとか、小学校5年生で日本の中学校後半レベルの数学教育がなされているとか、数学教育に熱心なことで有名。

    そのせいか、非常に優秀なプログラマを多く擁する。
    これに人件費の安さもあいまって、現在世界からガンガン仕事を取り入れ、発展を続ける国である。

    日本のITドカタなど、彼らに比べればカスだという業界関係者もいるとかいないとか。

う#

  • ウィザード

    1. 本来は魔術師の意味だが、魔術師のようにプログラムを操る上位のハッカーをこう呼ぶ。

ここにある種のカリスマ性が加わると、グルと呼ばれるようになる。
基本的に変人が多いので、コミュニケーションをとるときには注意が必要。

  1. 煩雑な操作を簡潔なものにし、愚かなユーザ達の手を煩わせないようにしよう、という偉大な発想の下に作られた、

きわめて簡単な数ステップの操作さえも複雑で面倒で無意味な何回もの操作に置き換えてしまう偉大なプログラム。

お#

  • オブジェクト
    プログラミングをする上で重要な概念のひとつ。
    プログラム上で登場する、各要素のこと。

    狭義には、データとそのデータに対して行う操作をパックしたものを指す。
    広義には、データそのものを指す。

    例)変数オブジェクト、クラスオブジェクトなど。

  • オブジェクト指向(- しこう)

    1. プログラムをオブジェクトの集まりとして表現しようという概念。保守性、拡張性に優れた開発を目指す。

継承、多態性、カプセル化の三つの手段を基本的な柱とする。

  1. プログラム上で発生するすべての問題を、簡単に解決してくれるのではないかという幻想を抱かせる魔法の言葉。

もちろん、そんなおいしい話は存在しない。

か#

  • 完全に理解した
    チュートリアルを完了できて自信に満ち溢れている様子。つまり完全な理解には程遠いことを表す。
    「C++を完全に理解した」と豪語する人間がいたら、ポンコツ・詐欺師・心を病んでいる人のどれかなので近寄らない方が無難である。

    [対]チョットデキル

き#

  • 企画書(きかくしょ)
    こんなアプリはどうでしょう?こんなアイディアおもしろくないですか?というアピールを上司にして、
    開発費を下ろしてもらったり、顧客に対して提案をするときにまず必要になる文書。
    新入社員が訳もわからず書かされ、上司に罵倒されるための道具でもある。~
    ここで提出された企画書を煮詰めていって、仕様書などが作成される。

  • 企画倒れ(きかくだおれ)
    企画書の段階では、とってもおもしろそうだったんだけどねぇ・・・。

く#

  • グル
    guruとも。
    最高位のハッカーに与えられる敬称。

    カリスマ性を備えたウィザードのことをこう呼ぶ場合が多い。
    グルと呼ばれるハッカーは世界に数人しか居ない。

    [類] ウィザード

け#

  • 継承(けいしょう)
    オブジェクト指向プログラミングにおいて、
    あるクラス(スーパークラス、元クラス、親クラス、上位クラスなどという)の機能を受け継いで、
    新しいクラス(サブクラス、派生クラス、子クラス、下位クラスなどという)を設計、実装すること。~
    inheritanceとも呼ばれるが、発音がinstanceに似ているため、混乱を防ぐ目的から継承と呼ばれることが多い。

  • 計算工学(けいさんこうがく)
    一般解をもたない数々の物理方程式を、計算機を用いて近似的に解くことで、実用上十分な解を得ようという工学系学問のひとつ。
    自動車設計や流体解析、構造解析などに用いられる。

    日本の第一人者は矢川元基(元:東京大学教授)など~
    有限要素法、有限差分法、数値積分法など、いわゆる計算系アルゴリズムを全般的に研究する学問でもある。
    この分野の出身者は物理学を学んだ人間も多いため、純粋な情報系に対してより変態度が増す傾向にある。

    また純粋な理系ではなく、工学系であるため、あらゆる場面において理論値でなく誤差まで考えた測定値を想定してしまう思考回路をしているのが特徴。~
    英語では Computationas Science and Engineering などとされる。

こ#

  • コンパイル
    人間に扱いやすい言語で書かれた(機械語と一対一に対応しているわけではない)ソースコードを、
    機械語およびそれ相当の中間言語に翻訳する作業のことを指す。
    広義にはリンクまで含めた作業を指すが、狭義にはリンク前のオブジェクトファイルと呼ばれるファイルを出力するまでの作業のことを指す。

    [類] アセンブラ

し#

  • 幸せになれるかもしれない(しあわ -)
    困っている人にアドバイスするときや、物事をよく理解しないで質問してくる初心者に対して回答するとき、文章の末尾に付けられる常套句。~
    幼児言葉的に、「しわわせになれるかもしれない」とも。

    1. まずは探してから来い、下手な質問をするんじゃないよという気持ちと、

あからさまに相手に対して敵意を感じさせないで、それを伝えるための表現方法として使われる。

  1. 自分のアドバイスした事柄に対しては、責任は持てないよという意思表示のために使われる。

[例] malloc でぐぐると幸せになれるかもしれない。

  • 実行ファイル圧縮(じっこう - あっしゅく)
    Executable compression。実行ファイルを圧縮し、起動時にメモリ上へ自動展開する機能とまとめることで、省サイズな実行ファイルを作ること。~
    ドライブの容量が少ない時代によく使われた。デモシーンのようにサイズ制限が過酷な場では必須の技術である。
    圧縮ソフトとして UPX, .netshrink, PELock, .NETZ, Crinkler などが知られている。

  • 車輪の再発明(しゃりんのさいはつめい)
    遙か昔に考案され、実際に試行錯誤が繰り返されて成熟したものを、その存在を知らずに自分で一から作ってしまうこと。
    多くの場合、完成するのはお世辞にも車輪とは呼べない「何か」であり、実用には耐えない。
    そして車輪を知っている人に自慢げにその何かを見せて絶望するのである。
    自分が天才だと思ったら、そうだと信じる前に自分の無知を疑おう。
    もし無知でないことが証明されたら、おめでとう。君は天才だ。これからも無知にならぬよう好奇心を持ち続けよう。

  • 仕様書(しようしょ)
    プログラムがどう動作するべきか、どのような状態でどのような処理を行うべきかを細かく指示した文書。
    ここに書かれていることであれば、一見バグと思われる動作でも「仕様ですから」と言って切り抜けることが出来る。
    プロジェクトが進むにつれて、頻繁に書き換わることもあるため、プログラマのためのデスノートと呼ばれることもある。

  • 仕様ですから(しよう -)
    「大豆ですから*4」のごとく発するべき、困った時の伝家の宝刀。
    この一言で、大多数の顧客は黙り込むという伝説が語られるほど、有名な一言である。

    例)Windows Meのブルースクリーン?あぁ、それ、仕様ですからww

せ#

  • 正規表現(せいきひょうげん)
    文字列のパターンを記述するための表現手法のこと。
    特に、Perl型と呼ばれる正規表現が現在広く利用されているため、そのスタイルを指すことが多い。

    検索や置換を行うときに、メタキャラクタという抽象化された文字と、いくつかの特殊記号によってパターンマッチングを行い、
    文字の並び方のパターンを用いて検索や置換といった操作を行うことができる。

そ#

  • ソースコード
    Source code。原始プログラムとも訳される。
    各プログラム言語で書かれた、コンパイル前のテキストファイルのこと。

    コンパイラが適切にコンパイルを行うために、ソースコードは次の決まりをもって書かれる。

    • 内容は、用いたいと思っているプログラム言語の文法に従う。
    • 文字の形や色といった、余計な情報がファイルに付加しない。(純粋なテキストファイルとする)
    • コンパイラで指定された文字コードを用いて記述する。
  • そのソースください
    自分のやりたいことを、他の誰かが実現している時に発するべき言葉。空気を読まずに発すると、怪訝な顔をされることがある。
    もし自分が言われた時は、きちんとライセンスに同意させた上でソースを渡してあげよう。

た#

  • 高橋メソッド(たかはし -)
    とにかく文字をでかく書く、Ruby界隈を中心にSE系に好まれているプレゼン手法の一つ。
    考案者は高橋征義。
    話の主題や要点だけがでかでかと書かれるため、聞き手は話に集中しやすいという特徴を持つ。

    作る側としては、プレゼン枚数が多くなるものの、余計なアニメーション等を使わなくてよいことから、ツールを選ばず作れるという利点がある(オリジナルはHTMLで作られていたそうだ)。~
    [類] もんたメソッド, べつやくメソッド

  • 端末(たんまつ)
    ユーザインターフェースに特化した機器やコンピューター、またはそれを論理的に再現したソフトウェアのことを指す。
    GNOMEターミナルとか、multermとか、TeraTermとか、Puttyとかが有名。

    広義にはWindowsのCmd.exeやPowerShell、NYACUSといったソフトウェアも含む場合がある。~
    駅の切符販売機やローソン、サンクスなどに置いてあるチケット販売機も、一種の端末といえる。

ち#

  • 中国語の部屋 (ちゅうごくごのへや)
    人工無脳の制作を語る際に語られる有名な思考実験。
    手紙を出し入れする穴をもったとある個室には、中国語を知らない哀れな英国人と、中国語の文章に対して返答すべき中国語の文章が網羅されたマニュアルがある。
    哀れな英国人は、穴から渡される謎の記号の羅列(=実際には中文である)に対し、マニュアルを元に返答を作成して差し出す。
    このときマニュアルも、英国人も中国語を理解しているとは言えないが、その部屋に手紙を入れた中国人には、その部屋が中国語を理解していると考える。
    え?マニュアルを作った人?知らんがな(´・ω・`)

    という話。

  • チョットデキル
    同様の成果物を自力で1から作れるという意味。または作った本人。
    事例: リーナス「ワタシハリナックスチョットデキル」

    [対]完全に理解した

つ#

  • 使える言語はHTMLです(つかえるげんごはえいちてぃえむえるです)
    非常に洗練された高度なジョーク。
    面接などで相手に「どんな言語が使えるの?」と訊かれた時に使用する。

    また、初対面の相手と打ち解けるために積極的に「どんな言語が使えるの?」と訊いてみよう。
    「C言語を少々」や「アセンブリ言語が使えます」などと答えるのはジョークを理解できない不粋者である。

    [関]どんな言語が使えるの?

て#

  • デザインパターン
    プログラミングでみんなが「あるあるww」とうなずけるパターンに対して適用可能な、効率の良い解法のこと。
    様々なパターンがあり、それぞれに大層な名前が付いているが、
    発動にすごいスキルが必要とか、事前にトラップカードを伏せておかなくちゃいけないなんてことは一切無い。

    ライブラリのロードぐらいは必要かもしれないが・・・。~
    このデザインパターン、汎用性のあるパターンが多く収録されているため、
    あらゆる問題をデザインパターンで解決しようという気になったり、
    問題にブチ当たるとまずデザインパターンでなんとかできないか考えるようになってしまう一種の病気を発病する危険性を孕んでいる。
    それなりにプログラミングの学習が進んでからチャレンジしましょう。

  • デスマーチ
    あー。。。納期まであと三日かぁ。。。~
    進捗?昨日の申し送り段階で、80%いったぐらいじゃない?

  • デバッガ

    1. debugを行うソフトウェアのこと。debugger。

有名なものではGNUによるgdbやBorlandによるTurbo debugger、マイクロソフトによるワトソン博士などがある。
原則として、プログラム言語に依存することなく用いることが可能である。

  1. debugを行う人のこと。マゾヒスト。ドM。
  2. プログラムは大して書けないのに、他人のプログラムのバグを見つけ、原因を特定するのが上手な、職場に一人はいるプログラマに対して用いられる敬称。

例)
「あの人、遊んでますけどいいんですか?」
「あぁ、彼はデバッガだから、開発の初期段階では出番が無いんだよ」
「でも、2chとかしてますよ?」
「いいんだよ。デバッグのときに人の3倍は仕事するんだし。」

と#

  • 統合開発環境(とうごうかいはつかんきょう)
    IDEとも。
    デバッガやエディタなど、プログラムに必要な環境を総合的に提供してくれるソフトウェアのこと。

    特に高機能なものになると、プログラムをプロジェクトという単位で管理する機能やGUIフォームデザイナを提供してくれる。
    VisualStudioやEclipseといったものが有名。

    [類] RAD

  • どんな言語が使えるの?(どんなげんごがつかえるの)
    使える言語はHTMLですというジョークと共に使われる会話の導入部。
    訊かれた場合「使える言語はHTMLです」と答えなければならない。

    その他の言語(メジャ/マイナを問わず)を答えると、表面上は感心したような言葉を返して貰えるが、
    心中ではバカにされていると考えるべきである。~
    [関]使える言語はHTMLです

な#

  • なでしこ
    日本語プログラミング言語。
    ひまわりの後継として開発されている、インタープリタまで含めた純国産の製品群を言う。

    式、制御文など、プログラミングに必要な要素すべてを日本語で記述する。
    ちょっとおかしな日本語になるのはご愛嬌。

    ちょっとしたツールをさくっと書くのには向いているかもしれない。

ぬ#

は#

  • ハカー
    自称ハッカーに対して用いられる蔑称。
    より勘違いの激しいものに対して、スーパーハカーという蔑称が用いられる場合もある。

    [関] 完全に理解した

  • ハグ
    バグとよく混同されるが、こちらは人恋しい夜に欲しくなるもの。
    濁点が無いだけで大分違うものになるので、言葉を使うときには注意が必要である。

    さて、ここで注意しなければならないのが、多くのプログラマの恋人は画面から出てくることができないという現実である。
    もし現実と真っ向から向かい合うことのできないプログラマを見つけたとしても、物言わないイラストの描かれた枕とハグをしていても、決して責め立ててはいけない。

    製作戦隊ツクルンジャーとの約束である。

  • バグ
    英語表記はbug。本来の意味は虫のこと。
    プログラミング用語として用いる場合、プログラマが意図したとおりに動かない要素を指す。

    どこまでがバグの定義かは難しいが、広義には製品出荷後に発生する実行時エラーまで含む場合があるし、
    狭義にはデバッグ段階で見つかったものまでをバグとすることもある(すなわち、製品の出荷後に見つかった不具合は仕様となる)。
    エラーをどこまでバグとして扱うかは難しい問題だが、
    基本的にはプログラマ(あるいはソフトウェアの設計者)が意図したとおりに動いていないものは、すべてバグだと思っていい。

    スーパーファミコン世代は、「バグった」という言葉と共に育ってきたといっても過言ではないが、
    その多くはバグでないことは、この記事を読む読者なら了解済みのことだろう。~
    もしゲームをしながら「うわwwバグったwww」とかいうクソガキを見つけたら、
    「仕様書も見ないでバグとかほざいてんじゃねぇよカス!」とやさしく語りかけてあげることが、大人としてのマナーであると筆者は考えている。

  • ハッカー
    hacker。hackするものの意。
    よく言われることだが、クラッカーやスクリプトキディとは違うので注意。

    それらとの最大の違いは、ハッカーが好奇心で突き動かされているという点。
    具体的には、悪さをしたり、人が困る様がおもしろかったりするわけではなく、純粋に興味や知的好奇心、自分自身の正義のために技術力を使おうと考える点が異なる。

    無精で短気で傲慢という三条件を満たす人物は、その素質があるといっていい。
    ただし、ハッカーとは周囲から呼ばれる敬称であり、自分自身で名乗るものではない。

    自分自身で名乗ったら最後、ハカーと呼ばれることは間違いない。~
    ハッカーの中でも特に優れた技術を持つものをウィザード、そこにカリスマ的人間性が加わったものや、ウィザードの中でも突出した変人をグルと呼ぶ場合がある。

ひ#

  • ひまわり
    野原家の長女でしんのすけの妹。~
    中の人はこおろぎさとみ。

ふ#

  • ファーストクラスオブジェクト
    First class object。
    SICPによると、「変数として名前が付けられて、手続きに引数として渡せて、手続きの結果として返せて、データ構造に組み込める」というオブジェクトのこと。

    多くは変数そのものを指すが、Lispでは手続きもファーストクラスオブジェクトとして実装されている。

  • ぷよぷよ
    その昔、「のーみそこねこね」のキャッチフレーズで一世を風靡したコンパイルという企業が販売していたパズルゲームシリーズの名称。
    同じ色の四つのぷよを集めると消え、得点になるという単純なルールからファンも多く、仕組みそのものも単純であることから、プログラミングの課題として使われることも多い。

    基本的なルールは~
    ・画面上部からふたつひと組の「ぷよ」が落ちてくる~
    ・同じ色のぷよは、四つくっつくと消える~
    ・画面内がぷよで一杯になってしまったらゲームオーバー~
    というもの。
    実装する時にポイントとなるのは

    ・二次元平面をどう表現するか?
    ・壁際における「ぷよ」の探索をどう実装するか?

    ・「ぷよ」同士が四つ以上くっついたことをどう判定するか?
    ・くっついた「ぷよ」を画面から消した後の処理はどう行うか?

    ・連鎖判定処理をどのように実装するか?
    などで、課題として用いられる場合、プログラミング初級~中級者向けとされる場合が多い。

    なお、初級~中級者に実装させる場合には、画面描画など面倒な部分をライブラリとして提供することも多くあり、APIや他人の作った関数の使い方を学ばせる教材としても適しているとされる。

  • ブレークポイント
    プログラムをデバッグする際に指定する、プログラムの動作を一旦停止させたい場所のこと。ブレイクポイントとも。

  • ブラウザゲー
    ちょっとした気分転換にはじめたはずが、気づくと日付が変わっている。
    そんなタイプのお手軽ゲームのうち、ブラウザ上で遊べるものをさす。

    特にプログラマスレでは、デバッグ中やコーディング中の気分転換として人気が高い。
    反面、その中毒性の高さから、自らブラウザゲーを禁じている住人も少なくない。

    VIPで立つ関連スレッドは、紛らわしいスレタイから嫌われることも多い。

  • プロデル
    日本語プログラミング言語の1つ。TTSneoを開発していたゆうとが仕様を刷新して製作したもの。

  • べつやくメソッド
    伝えたい情報を円グラフ(パイチャート)にまとめて表現するプレゼンメソッド。
    考案者はべつやくれい。
    理工学系の世界では、円グラフは視覚的誤解を与えやすいという特徴から嫌われる傾向にあるが、
    伝えたいことに含まれる情報の割合を大雑把に表し、聞き手に全体の雰囲気を把握させることを優先させる場合に役立つ。

    作り手としては、数値に厳密にならなくても、円グラフなので雰囲気でカバーできるという利点を持つ。~
    [類] もんたメソッド, 高橋メソッド

  • ベル研究所(- けんきゅうじょ)
    トランジスタ・情報理論・UNIX・CとC++の開発など、情報産業に多大な影響を与えたハイテク研究機関。
    名称は電話の発明者グラハム・ベルに由来。~
    世界屈指の研究所であったが、AT&T(米国のNTT的存在)の分割で弱体化。基礎研究は打ち切られ、かつての輝きはもはやない。

ほ#

  • ポインタ
    何かを指し示すものの意。特にプログラミングにおいては、アドレスを指し示すものに関してポインタと呼称することが多い。
    この他、オブジェクトを指し示していたり、関数を指し示していたり(実態は、いずれもそれらの保持されているメモリの先頭アドレスである場合が多い)非常に幅広い使い道を持つ。

    C/C++を学ぶ上での鬼門とされ、よく「アセンブラを学べば簡単」と言われるほど、その概念の理解は一般に困難とされる。~
    [類]参照

  • ポインタ変数(- へんすう)
    多くの場合、プログラムにおいてポインタを活用する時、そのポインタが「どこ」を指しているのかを保持しておく必要がある。
    その場合に用いられるのがポインタ変数と呼ばれる変数である。

    ポインタ変数は、先の説明どおり、ポインタがどこを指し示しているのかを保持する変数で、多くの場合にアドレスを保持する。
    ただし実態は変数なので、ポインタ操作を介さなければ、通常の変数のように活用することが出来る。(推奨はされていないので、行うべきではない)

    例えばmallocなどで確保したメモリ領域の先頭アドレスを受け取るためにポインタ変数を用いる。~
    一旦ポインタ変数にアドレスを保持しておけば、以後はそのポインタ変数の値とポインタを組み合わせて使うことで柔軟な操作を実現できる。

  • ポトペタ
    GUIプログラミングにおけるフォーム部品の設計を、ポトッと置く・ペタッと貼るというようなグラフィカルな操作で行えること。

も#

  • もんたメソッド
    プレゼンテーションに用いられるスライド一枚一枚を、テキスト情報と簡単なイラストからなる構成とし、
    記述のうち重要部分を黒塗りなどで隠しておき、順番にめくりながら話すプレゼン手法の総称。
    その名称は、おもいっきりテレビや朝ズバといったテレビ番組でみのもんた氏がよく用いる手法に酷似していることから名付けられた。

    この方法では、プレゼンの途中に、隠れている部分について聞き手とやり取りをすることができたり、
    隠れている部分をはがすまでに「みの溜め」と呼ばれる独特の間の作り方をすることが可能なため、
    少人数相手のプレゼンや、議論をしながらプレゼンをしなければいけない時に、プレゼンのペースを自分に持ってくるために利用することができる。
    聞き手にとっては、重要なところが隠れているために、話し手が話し終わらないうちにプレゼンを読むことで内容が把握できるようなことはないし、
    かといって全ての情報が隠れているわけではないため、隠れている部分の情報を推測するという楽しみがある。

    情報系ではよく使われていた手法だが、最近ではあまり見ない気がする。~
    [類] べつやくメソッド, 高橋メソッド

や#

  • 優しい終身の独裁者(やさしいしゅうしんのどくさいしゃ)
    大規模オープンソースプロジェクトのリーダーに贈られる称号。コミュニティが認めた最終調停者を指す。独裁者とあるが蔑称ではない。
    論争や衝突に際して、コミュニティで結論が出ず、判断の指針が必要になった場合に、
    その仲裁役として方向性を示し、一部開発者に妥協してもらったり、時には去ってもらったりする。

    コミュニティを顧みない本物の独裁者ではプロジェクトの分裂を招くだけである。

よ#

  • 妖精さん(ようせい -)
    長時間プログラミングをしていると見えてくるとか、
    眠気がピークに達した時に代わりにとっても不思議なコードを記述してくれるとか、そんな噂が耐えない不思議な生き物。
    しかし、これまで第三者によって妖精さんが観測されたことは無く、実在するのかは定かでない。

    「妖精さんが・・・」という言葉が頭をよぎった、あるいはそういった発言が見られた時点で、
    その人は何かしらの末期状態にあると判断できるので、健康基準として企業では幅広く利用されている。
    優良企業であればその時点で有休や睡眠などを勧められるが、劣悪な就労環境であればデスマーチが終わるまで放置されることも少なくない。

    後者の場合、労災が認められるケースが多数を占めるので、あきらめずに粘り強い交渉をしていくことが重要である。~
    当然、その際に転職活動も忘れてはならないことを付け加えておく。

プログラミング用語の解説サイト#


  1. おおブレネリ ↩
  2. 誇張ではない。 ↩
  3. [麻原彰晃](https://ja.wikipedia.org/?curid=3024498) ↩
  4. SOYJOYのCM ↩
📝 このページに誤りを見つけたら…  GitHubで報告(エンジニア向け)  ・  フォームで報告