出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/02/10 05:40 UTC 版)
| パラダイム | マルチパラダイム: オブジェクト指向、関数型、手続き型 |
|---|---|
| 登場時期 | 1994年 |
| 設計者 | Fredrik Hübinette |
| 開発者 | Pike開発チーム(リンショーピング大学計算機・情報科学科がサポート) |
| 最新リリース | 8.0.1738[1]/ 2022年1月30日[1] |
| 評価版リリース | 9.0.9[2] / 2024年9月19日[2] |
| 型付け | 静的、動的、マニフェスト |
| 主な処理系 | Pike |
| 影響を受けた言語 | LPC、C言語、µLPC |
Pike は、インタプリタ型の汎用高級クロスプラットフォーム動的プログラミング言語であり、C言語に良く似た文法を持つ。他の動的言語とは異なり、Pike は静的型付けも動的型付けも可能で、明示的な型定義を必要とする。柔軟な型システムであり、動的型付き言語として素早い開発と柔軟なコードが可能である一方、静的型付き言語としての利点も併せ持っている。Pike にはガベージコレクション機能、豊富なデータ型、第一級無名関数、各種プログラミングパラダイム(オブジェクト指向、関数型および命令型プログラミング)のサポートといった特徴がある。Pike は自由ソフトウェアであり、GPL、LGPL、MPL でライセンスされている。
Pike の起源となったのは、LPC というMUDのために開発された言語であった。スウェーデンのリンショーピング大学のコンピュータ同好会 Lysator の Fredrik Hübinette や Per Hedbor らがMUDドライバから言語部分と仮想機械部分を分離し、各種アプリケーションの高速プロトタイピング言語として使った。LPC のライセンスは商用利用を許していなかったため、新たなGPL実装が1994年に書かれ、これを μLPC(マイクロLPC)と呼んだ。1996年、商用利用が広がる期待を込めて μLPC を Pike と改称(Pike はカワカマス類のことで、ロゴもカワカマスの絵である)。彼らの設立した会社は現在では Roxen Internet Software として知られ、Pike プログラマを数多く抱え、Pike 開発に関するリソースを提供している。2002年、リンショーピング大学のプログラミング環境研究所が Roxen に代わって Pike の保守を行うようになった。Pike プログラマの何人かはオペラ・ソフトウェアのリンショーピング事業所に就職した。そこでは、Opera Mini アプリケーションのサーバ/ゲートウェイ部分にPikeが使われている。
Pike による Hello World プログラムは次のようになる。
int main() {
write("Hello world!\n");
return 0;
}
このプログラムを解説すると、次のような点が挙げられる。
以下の一覧はPikeが提供する標準データ型を全て示したものである。より高度なデータ型(シーケンス、キュー、ヒープ、スタックなど)はADT(Advanced Data Types)モジュールにあり、Pike に標準で含まれている。
基本データ型:
コンテナ型:
その他の型:
Pike は全変数に明示的な型宣言を必要とする。つまり静的型付き言語であり、コンパイル時に型の誤りを検出する。以下のコードでは "number" という変数は整数型と宣言されているため、浮動小数点数や文字列を代入しようとしているのでコンパイル時にエラーとなる。
int number; // 整数変数なので、整数しか代入できない。
number = 5.5; // 5.5 は浮動小数点数なので、エラーになる。
number = "5"; // "5" は文字列なので、エラーになる。
このような性質は、動的プログラミング言語としては制限が強すぎるとされることが多い。しかし、C、C++、Java などとは異なり、Pike はより柔軟な型システム(タグ付き共用体)を採用している。このシステムでは、複数の型を格納できる変数を宣言でき、C言語の系統では共用体の境界を無視しないと同じようなことは実現できない。
以下の例は、整数または浮動小数点数を保持できる一つの変数を示したものである。
int|float number; // 整数'''または'''浮動小数点数の変数
number = 5; // これは正しい。
number = 5.5; // これも正しい。
このように変数が複数のデータ型の値を保持できるため、変数がその時点で保持しているデータ型を知ることができる関数群がある。それらはデータ型名に p を後置した名前であり、intp、floatp、stringp などがある。
int|float number;
number = 5;
intp(number); // number には int が代入されているので true を返す。
floatp(number); // false を返す。
number = 5.5;
floatp(number); // number は新たに float を代入されているので true を返す。
さらに、特別なデータ型 "mixed" がある。この場合、任意のデータ型をその変数に代入可能である。
mixed anything;
anything = 5; // anything の値は整数値の 5 になる。
anything = 5.5; // anything の値は浮動小数点数値の 5.5 になる。
anything = "5"; // anything の値は文字列の "5" になる。
Pike では、値の型を変換する手段として明示的な cast も使うことができる:
mixed anything;
anything = (int)5.5; // anything の値は整数値の 5 になる。
anything = (string)anything; // anything の値は文字列の "5" になる。
(pike から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/02/10 15:10 UTC 版)
パイク(英語: pike)は、15世紀から17世紀にかけ、歩兵用の武器として対騎兵、対歩兵と幅広く使用された槍の一種である。4メートルから7メートル程度の長い柄に25センチメートルほどの木の葉状の刃がついており、重量は3.5-5キログラム。すなわち西洋式の長柄槍。パイクの名称は15世紀、フランス語でピケ(pique)と呼ばれた歩兵用の槍の英語発音に由来する。
パイクを持った歩兵は主に隙間なく密集方陣または横隊を組んで前進し、歩兵に対してはプッシュ・オブ・パイク(Push of pike)によって、騎兵に対しては槍衾を作ることによって対抗した。
プッシュ・オブ・パイクとは、肩の高さでパイクを保持し、小さな突きで牽制しながら互いの体が接触するまで前進する戦闘方法で、接触後は白兵戦用武器と押し合いを併用した戦闘が行われた。通常、どちらかの隊列が崩壊するまで継続され、多くの死傷者を伴った[1][2]。
パイク兵の主任務は突撃してくる騎兵や歩兵の迎撃だったが、しばしば味方の射手や騎兵の援護、撤退する味方の支援などにあたった。
パイクはこのように幅広い用途に用いられ大変効果的だったため、17世紀後半までは主要な歩兵用武器だったが、銃剣の発明により射手が近接戦闘も行えるようになると完全に姿を消した。
マケドニア王国において、サリッサというパイクに似た長槍が使われていた。アレクサンドロス大王のマケドニア軍では、軽装のマケドニア式ファランクスが装備した。 大王の死後、サリッサはさらに長くなり、弱点であった機動力はさらに低下した。援護する騎兵や熟練兵の減少もあって共和政ローマが台頭すると、ローマの投槍とグラディウスで武装したレギオンに対抗できずにほぼ姿を消した。
15世紀初頭まで、スイス兵は主にハルバードやバトルアックスで戦っていた。しかしこうした武器は騎兵のランスに対しては余りにも短く(同じ長さでも歩兵と騎兵で扱う長さが違う)、下馬騎兵の集団を相手にした場合不利であった(1386年ゼンパハの戦い[3])。
1422年6月30日、傭兵隊長フランチェスコ・ブッソーネ・ダ・カルマニョーラの指揮する下馬騎兵を相手にしたアルベドの戦いでは、一時、ルツェルン市参事会議長が降伏のしるしにハルバードを地面に突き刺したといわれるほどの苦戦を強いられ[3]、その後の同盟会議においてハルバードを中心とする戦術の見直しと、パイク中心戦術への転換が決定された。行軍の際に引きずらなければならない(肩に担ぐとひどく揺れるため)[3]ほどの長大なパイクの操作には相当な訓練時間を要し、また移動にも制限を強いたが、密集隊形にそれまでとは比較にならない強さをもたらした。
スイス兵は主にフランスで傭兵として雇われ、パイクも西ヨーロッパ中に広まった。スイス傭兵を大量に採用したフランス軍は西欧地域においてスペイン軍に次ぐ陸軍大国として君臨した。火器が発明されてもその重要性は変わらず、マスケット銃を装備した部隊は装填や隊形の変更などの間、パイク兵の援護を受けねばならなかった。
ビザンツ帝国や中国の諸帝国では古代以降も中世・近世まで連綿と長柄の槍が使われ続けた。
17世紀末、フリントロック式のマスケット銃が広まり銃剣の使用が実用的になったことで、銃兵は独力で近接戦闘が可能になり、完全にパイクは銃剣に取って代わられた。
一方で第二次世界大戦中のイギリスでは物資の不足から、後方部隊であるホーム・ガードに「ホーム・ガード・パイク」が支給されたこともある。このパイクは鉄パイプの先端に銃剣を溶接しただけのもので、ウィンストン・チャーチルが陸軍省に送った文書の「棍棒や槍でもいいから、全ての国民に武器を持たせろ」という一文が発端となって開発されたとされる[4]。25万本もの数が配備されたが、現場からは不評で短期間の配備に終わった[4]。
固有名詞の分類