poke
「poke」の意味
「poke」という単語は、主に物や人を指で押す、突くという意味がある。また、pokeは他にも、好奇心から物事に首を突っ込む、干渉するという意味も持っている。さらに、ポケモンシリーズに登場するポケットモンスターを指す略語としても使われることがある。「poke」の発音・読み方
「poke」の発音は、IPA表記では /poʊk/ であり、カタカナ表記では「ポウク」となる。日本人が発音する際のカタカナ英語では「ポーク」と読むことが一般的である。「poke」の定義を英語で解説
In English, the word ""poke"" is defined as ""to push, jab, or prod (someone or something) with one's finger or a pointed object."" It can also mean ""to meddle or interfere in someone's affairs, especially out of curiosity."" Additionally, ""poke"" can be used as an abbreviation for ""pocket monster"" in the context of the Pokémon franchise.「poke」の類語
「poke」の類語には、""jab""(ジャブ)、""prod""(プロッド)、""nudge""(ナッジ)などがある。これらの単語も、物や人を指で押す、突くという意味で使われることが多い。「poke」に関連する用語・表現
「poke」に関連する用語や表現には、""poke around""(うろつく、物色する)、""poke fun at""(からかう)、""poke one's nose into""(首を突っ込む)などがある。これらの表現は、pokeの意味を含んだフレーズであり、日常会話でよく使われる。「poke」の例文
1. He poked the fire with a stick.(彼は棒で火を突いた。)2. Don't poke your nose into my business.(私のことに首を突っ込むな。)
3. She poked him in the ribs to get his attention.(彼女は彼の注意を引くために、肋骨を指で突いた。)
4. The cat poked its head out of the box.(猫が箱から頭を出した。)
5. They were poking around in the attic, looking for old photos.(彼らは屋根裏を物色して、古い写真を探していた。)
6. She poked fun at his fashion sense.(彼女は彼のファッションセンスをからかった。)
7. The teacher poked the student awake with a ruler.(先生は定規で生徒を突いて起こした。)
8. He poked a hole in the balloon with a needle.(彼は針で風船に穴を開けた。)
9. The dog poked its nose through the fence.(犬がフェンスから鼻を出した。)
10. She poked the button on the remote control.(彼女はリモコンのボタンを指で押した。)
Poke
別名:Facebook Poke,Facebookポーク
Pokeとは、Facebookが提供する写真つきメッセージ機能のことである。モバイルアプリで提供されている。「poke」は豚肉(pork)ではなく「つっつく」「小突く」といった意味の英語である。
Pokeでは写真や動画を友だちに送り、最大10秒までの短時間だけ表示させ、表示時間が過ぎたら自動的にデータを削除する機能を持つ。Pokeで送信した画像は送信相手のみ閲覧できる。閲覧中はスマートフォンの端末の画面にタッチしている必要があり、指を話すとその段階で画像は表示を終了する。
Pokeのように画像の自動削除機能を持つ画像共有・メッセージングサービスは、「スナップチャット系アプリ」と呼ばれる。
参照リンク
Facebook Poke - (Facebookヘルプセンター)
PEEKとPOKE
(poke から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/27 08:54 UTC 版)
ナビゲーションに移動 検索に移動コンピューティングにおいて、PEEK(ピーク)[注釈 1]とPOKE(ポーク)[注釈 2]は、いくつかの高水準プログラミング言語で使用されるコマンドで、メモリーアドレスで参照される特定のメモリセルの内容にアクセスするために使用する[1][2]。BASICのものがよく知られているが、PascalやCOMALなど他のプログラミング言語にも同様のコマンドがある。このコマンドは、C言語などにおけるポインタに匹敵する役割を持っている。
PEEKとPOKEは、初期のパーソナルコンピュータにおいて様々な目的を果たすために考案され、特に、メモリ空間にマッピングされたハードウェアレジスタを変更するために使用された。また、プログラマはこのコマンドを使用して、ソフトウェアをコピーしたり、特定のソフトウェアのプログラミングの意図を回避したりすることもある(例えば、ゲームプログラムを操作してユーザがチートできるようにするなど)。今日では、BASICのような高水準言語を使用して、低水準でメモリを制御することはあまりなく、PEEK、POKEというコマンドの概念は一般的に時代遅れとみなされている。
英語においては、peekやpokeという言葉が、プログラミングにおけるメモリアクセスを指す動詞(poked, peekedなど)として口語的に使われることがある。
文法
PEEK関数とPOKEコマンドは、通常、以下のように直接モード(BASICプロンプトで入力して即実行)か、間接モード(下記のソースのようにプログラムの中から実行)で呼び出される。
integer_variable = PEEK(address)
POKE address, value
引数のaddressとvalueは、評価される式がそれぞれ有効なメモリアドレスまたは値に対応する限り、複雑な式を含んでいても良い。ここで言う「有効なアドレス」とは、コンピュータのアドレス空間内のアドレスであり、「有効な値」とは、(一般的には)ゼロから最小アドレス可能なユニット(メモリセル)が保持することができる最大符号なし数までの符号なし値である。
メモリセルとハードウェアレジスタ
POKEまたはPEEKされるアドレス位置は、通常のメモリセルや、対応するチップ(I/Oユニット、サウンドチップ、ビデオグラフィックスチップなど)のメモリマップされたハードウェアレジスタ、CPU自体のメモリマップされたレジスタを参照することができる(これにより、強力な機械語モニタやデバッグツール、シミュレーションツールをソフトウェアで実装することが可能になる)。以下は、POKEによる対応チップ制御の一例として、コモドール64の内蔵VIC-IIグラフィックスチップの特定のレジスタを操作して、画面の境界線を黒くするコマンドの例である。
POKE 53280, 0
以下は、Atari 8ビット・コンピュータでANTICディスプレイドライバに、全てのテキストを上下逆さまにするように指示するコマンドである。
POKE 755, 4
ハードに紐付けられたメモリ位置は機種によって異なるため、様々な機種の「メモリマップ」は重要な文書である。定型的な例として、アタリのコンピュータの64キロバイトのメモリ全体をロケーションごとにマッピングした本『マッピング・オブ・アタリ』が出版されている。
一般的に、ユーザプログラム、ユーザデータ、オペレーティングシステムのコードとデータ、メモリマップされたハードウェアユニットのために指定されたメモリアドレス領域は、機種によって異なる。このため、PEEK関数やPOKEコマンドは本質的に非移植性であり、これらを使用したプログラムは、そのプログラムが書かれたシステム以外ではほぼ確実に動作しない。
チートとしてのPOKE
多くの8ビットコンピュータ用ゲームにおいては、ゲームをメモリにロードし、起動する前に特定のメモリアドレスを変更して、無制限のライフ、無敵化、敵からの不可視化などのチートを行うことができた。このような変更は、POKEコマンドを使って行われた。コモドール64、ZX Spectrum、Amstrad CPCでは、関連するカートリッジやMultifaceを持っているプレイヤーは、実行中のプログラムをフリーズさせてPOKEを入力し、チート状態で再開することもできた。
例えば、ZX Spectrum向けの『ナイト・ロアー』では、以下のコマンドで無敵化することができた。
POKE 47196, 201
この場合、値201はRET命令に相当するので、衝突判定をトリガーする前に、ゲームがサブルーチンから早期に復帰する。
『ユア・シンクレア』などの雑誌には、ゲームにおけるそのようなPOKEコマンドが掲載されていた。このようなコードは、一般的に、機械語コードをリバースエンジニアリングして、ライフ数、衝突の検出などに関連するメモリアドレスを識別することで発見されていた。
POKEによるチートの使用は、最近のゲームでは難しくなっている。最近のオペレーティングシステムは、外部プログラムからの非共有メモリへのアクセスができないようするために、仮想記憶化によるメモリ保護を行っている(例えば、アプリケーションごとにページテーブルを分けるなど)。
16ビットマシンのPEEKとPOKE
初期のBASICが動作するほとんどのコンピュータは8ビットプロセッサを使用していたため、1つのPEEKまたはPOKEの値は0から255の間のものだった。16ビットマシンにおいて16ビットの整数値を読み書きするには、PEEK
やPOKE
を2回実施する必要がある。アドレスAの16ビット整数値を読み出すためには、PEEK A+256*PEEK(A+1)
とする必要があり、アドレスAに16ビット整数Vを書き込むためには、POKE A,(V AND 255)
に続けてPOKE (A+1),TRUNC(V/256)
を実行する必要がある。
IBM PCやAmigaなどの16・32ビットマシンでは、16ビット値を一度に読み書きできるDPEEK
やDPOKE
のようなコマンドが公式で用意されていた[3]。Sinclair QLでは、16・32ビット値の読み書きができるPEEK_W/PEEK_L
、POKE_W/POKE_L
コマンドがあった。Atari STシリーズでは、コマンド名称は8ビットのコマンドと同様だが、読み書きするビット幅を指定することができた。また、いくつかの8ビットマシンには、16ビット幅のPEEKとPOKEを行うBASIC方言があった。例えば、東ドイツの"Kleincomputer" KC85/1(別名 Z9001)やKC87には、DEEK
、DOKE
コマンドがあった[4]。
その他のBASICのPEEKとPOKE
1980年代初期のベンダーであるノーススター・コンピューターズは、独自のBASIC方言・North Star BASICを持つオペレーティングシステム・NSDOSを使用していたが、法的問題の懸念から、コマンド名をEXAM
とFILL
に変更していた。他に、MEMWとMEMRを代わりに使用するBASIC方言もあった。
BBC Microやその他のエイコーン・コンピュータのマシンで使用されたBBC BASICでは、PEEKやPOKEというキーワードはなく、queryと呼ばれる疑問符(?)を関数とコマンドの両方の操作に使用していた。以下にその例を示す(以下の例では、分かりやすさのためにREMの後のコメント内の説明を日本語で表記しているが、実際のBBC BASICでは日本語は使えない)。
> DIM W% 4 : REM 4バイトのメモリを確保し、整数型変数 W% で指定する。
> ?W% = 42 : REM 定数 42 を格納する。これは'POKE W%, 42'と等価である。
> PRINT ?W% : REM W% が指すバイトを表示する。これは'PRINT PEEK(W%)'と等価である。
42
32ビット値は、plingと呼ばれる感嘆符(!)を使用して、最下位バイトを最初にして(リトルエンディアン)、PEEKやPOKEを実施することができる。さらに、アドレスの後にqueryかplingのいずれかを指定して、オフセット値を指定してアドレスをオフセットすることもできる。
> !W% = &12345678 : REM アンパサント(&)は16進数であることを意味する。
> PRINT ~?W%, ~W%?3 : REM チルダ(~)は16進数として表示する。
78 12
文字列は、ドル記号($)を使用して同様の方法でPEEKやPOKEを行うことができる。文字列の終端は、キャリッジリターン文字(ASCIIでは&0D)で示される。オフセットは、ドル記号では使用できない。
> DIM S% 20 : REM 20バイトのメモリを確保し、 S% で指定する。
> $S% = "MINCE PIES" : REM 文字列'MINCE PIES'を格納する。文字列は &0D で終端されている。
> PRINT $(S% + 6) : REM S% + 6バイトから始まる &0D で区切られた文字列を表示する。
PIES
"POKE"という言葉の使用法
"POKE"という言葉は、特に1970年代後半から1980年代初頭にかけて8ビットコンピュータでプログラムを学んだ人々の間で、BASICを介したもの以外も含めて、「メモリの内容を直接操作すること」の意味で使用されることがある。
Visual Basic for Windowsでは、DDEを実現するのにLinkPokeキーワードを使用する。
8ビットビデオゲームのチートはPOKEと呼ばれることもあった(上記のチートとしてのPOKEを参照)。
脚注
注釈
出典
- ^ “PEEK”. Microsoft QuickBasic 4.5 Advisor. Microsoft (1990年). 2011年5月16日時点のオリジナルよりアーカイブ。2007年12月28日閲覧。
- ^ “POKE”. Microsoft QuickBasic 4.5 Advisor. Microsoft (1990年). 2011年5月16日時点のオリジナルよりアーカイブ。2007年12月28日閲覧。
- ^ Dave and Laura Yearke, "Turbo BASIC Command Set", Western New York Atari Users Group
- ^ “4. Kleincomputer - Eigenschaften und Möglichkeiten” (German). Mikroelektronik in der Amateurpraxis. 3 (1 ed.). Berlin: Militärverlag der Deutschen Demokratischen Republik, Leipzig. (1987). pp. 218, 232, 236. ISBN 3-327-00357-2. 7469332
関連項目
- キラーPOKE
- 自己書き換えコード
- ポインタ (プログラミング)
poke
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/15 17:38 UTC 版)
突くという意味。 メモリーに数値を書き込むこと。Basicのコマンド。PEEKとPOKEを参照。
※この「poke」の解説は、「ポーク」の解説の一部です。
「poke」を含む「ポーク」の記事については、「ポーク」の概要を参照ください。
「poke」の例文・使い方・用例・文例
- 英国では『slowpoke』のことを『slowcoach』という
- pokeのページへのリンク