flat7th

memo/20120824

created 2012-08-24 modified 2012-08-24 

スタックとキュー


ベストキッド:
「ワックス塗る。ワックスふき取る」
「ねぇコレ何の意味があるの?」
「これがすべての基本なんじゃよ」

PCキッド(旧時代):
「スタックにつむ。スタックからおろす」
以下同

PCキッド(これから):
「キューに入れる。キューから出す」
以下同


...ノイマン型コンピュータの基本の仕組みを変えなくていいけど、スタック方式じゃなくてキュー方式に変えようよ。

スタック方式ってのは、関数を呼び出して、戻ってくるっていう抽象化方式。シングルコア時代にはこれでよかった。

キュー方式ってのは、ベルトコンベア上のデータを加工するっていう抽象化方式。Unixパイプライン風、とも言う。マルチコア時代にはこれだ。


キューの実装はリングバッファでよい。



Indigo Girls の Ghost という曲の歌詞で、

I go follow to the river
 play your memory like the piper 

という一節があります。これ、コンピュータプログラミングにも発想応用できると思う。




Stack and Queue


The Karate Kid (1984):
"Wax the wall. Wipe the wall."
"What does it mean ?"
"That is the BASIC of all."

The PC Kid (old era):
"Pushing to the stack. Poping from the stack."
(same)

The PC Kid (new era):
"Pushing to the queue. Poping from the queue."
(same)


... We don't need change the Neumann architecture, but I prefer not a stack, but a queue.

Stack Method is the abstraction of a function call and return.
In the times of Single Core, it was enough.

Queue Method is the abstraction of processing a data on a belt conveyor.
It is just like a Unix Pipe Lining.
In the times of Multi Core, that's it.

The ring buffer may be good for implementation.




There is a song called "Ghost", Indigo Girls sing like that:

I go follow to the river
 play your memory like the piper

I think it can be applied in Computer Programmings.





Thank you for your attention for my poor English. chao.