JPS584452A - 関数型情報処理装置 - Google Patents

関数型情報処理装置

Info

Publication number
JPS584452A
JPS584452A JP56102900A JP10290081A JPS584452A JP S584452 A JPS584452 A JP S584452A JP 56102900 A JP56102900 A JP 56102900A JP 10290081 A JP10290081 A JP 10290081A JP S584452 A JPS584452 A JP S584452A
Authority
JP
Japan
Prior art keywords
variable
value
function
environment list
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP56102900A
Other languages
English (en)
Other versions
JPH0126092B2 (ja
Inventor
Akira Hattori
彰 服部
Hiroshi Hayashi
弘 林
Akio Shinagawa
明雄 品川
Takeshi Shinoki
剛 篠木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP56102900A priority Critical patent/JPS584452A/ja
Priority to DE8282303394T priority patent/DE3270597D1/de
Priority to EP82303394A priority patent/EP0069525B1/en
Priority to US06/393,533 priority patent/US4517640A/en
Publication of JPS584452A publication Critical patent/JPS584452A/ja
Publication of JPH0126092B2 publication Critical patent/JPH0126092B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は、数値ではなく記号を処理するリスl(Lls
pすなわちLi5t Processor )のような
関数型言語用の関数型情報処理装置に係〕、とくに関数
が実行される環境(変数の値として何をつかうかという
こと)をコンビ、−タ内部の記憶回路にスタック構造的
に格納するにあたって、そのスタ。
りに格納された変数の検索時間を短縮する良めに上記ス
タックメ毫りの外部に連想dラッテを設けることを特徴
とする関数型情報処理装置に関する。
リスプは第1図に示すような2進水リストすなわち記号
のつながりを閉路を含まない節点と枝の集合である木構
造(第1図(a))であられしえものを扱うものである
。すなわち、纂IWA(a)のような木構造であられさ
れる記号のつなかpt第1図(b)のように各ノードか
らでる枝が2本づつである2進水表現に直し良形で第1
図(@)に示されるような主記憶装置に格納する。すな
わち、各リストセルは主記憶装置の1##また[211
からなり七の各セルは左、右2つの部分からなる。各セ
ルの左の部分は畳通鉱ある記号、たとえば木という文字
の記号のピットIり一ンが格納され、右の部分はその記
号とつながるべき、次の記号を格納しているセルの番地
を格納することによって2つセルが連結して−、ること
を表現する。従って、第1図(・)のりストセルのっな
が)は、J11’図(b)の2進木リストを記憶回路上
で実現しているものであるeリスプは、このようなリス
ト構造をリス!言語を実行することによりて、fc1セ
、?を使りて動的に変換し、目的のリスト構造を得る装
置である。
リスプにおいてfaダッムするということは、2進水リ
ストを変換する丸めに必要な以下の5つの基本関数を組
み合せて形成される関数を定義し、その値を求めること
である・ 5つの基本関数とは1 イ)  ear(z)カール 2過木リス)Xの左の枝の先にある2進水リストを値と
jる・ 口)  cdr(X)クダー 2進木リス)Xの右の枝の先にある2進木リストを値と
する。
/9  @0!kl(X:Y) コンス新しいリスト・
セルを設け、その左の枝を2進木リス)Xとし右の枝を
2進木リストYとするような新たな2進水リストを作っ
てそれを値とする。
→ atom(X)  アトム Xがアトムの時、真という値(”?”中1*T*”で示
1)す)ell夛、そうでないとき、偽(″NIL”と
いうアトムで示す)とする。
ホ)・q (X:Y)イク XとYが同じ2進木リストの時、真の値(′″T#や一
*T*’)を城)、そうでない時、偽の値(”NIL’
 )を取る。
例えば、/ (x e y ) w= z74 、Xの
定義L−f−λ((X I Y ) ; X’ +y”
)と表わすことにより、/(2、3)の値は、 λ((xty);x’+yつ(2,3)口2’ + 3
2とな)、変数の対応関係を明確に規定することができ
る。
こζで%(X−Y)は仮引数と呼ばれる変数でありて(
2,3)は(x、y)のそのときの値である実引数と呼
ばれるものである。そして、この実引数(2,3)を仮
引数(x、y)に代入することt−束縛(blamlm
g )すると呼び、実引数を仮引数に束縛することによ
って関数の値、この場合2 +3 という目的のリスト
をつくることがリスff実行することである。したがっ
て、リス!すなわち関数型情報処理装置にあっては、仮
引数と実引数をどのように束縛するかが問題となる。
本発明において社、変数の束縛値(BlndVal−・
)が線形リスト(II境ツリストすなわちFILO(F
lrst  I!L  La5t  Out  ゛ま 
lヒは ハah dovns  Pop  up   
)  11スタツクへ変数名と値の対で格納される。こ
こでFILOIJlスタ、りとは前記記憶回路上で2進
水リスト構造でデータを間接アドレス方式(すなわち、
あるセルに次につながるセルのアドレスを格納しておく
方式)で格納していくむとである。この変数名と値との
対を格納していく順序は、引数変数の関数が呼ばれたと
きに実引数を値とする順番になる、いわゆるダイナさ、
クスコーピンダ(Dynaml@ii*ep1mg )
型Oml境をもつ関数型言語でありて、その変数の値が
なにであるかを参照する手順蝋、基本的には上記環境リ
スト(又はスタ。
り)を先頭からシーケンシャルに検索して最初に見つか
つ九値を使う、いわゆるディーfバインド(D・すIl
lmd)fi変数束縛を・行なう場合に、大域変数(関
数の引数のように関数を起動する時に束縛値が決定され
ている局所変数とは異なり、それ以前からその値が決め
られている変数)taし出すアクセスタイムを短縮する
九めに主記憶装置の他に連想ノ量ツ7アを設けることが
本発明の特徴であ一般に、第2図に示すように関数型と
は、そのグーグクム構造や実行形態が呼ぶべき関数すな
わち実行するべき関数f−λ((X # Y ) : 
X” + Y” )の仮引数(x、y)へ実引数(2,
3)を結合すなわち束縛(バインド)シ、呼けれたく起
動された)関数社、捜されたすなわち代入されるべき実
引数や大域変数を参照して所定の手続きを実行し、その
関数の値2’ + 32を呼び側へ返し、それ以外の副
作用(II境を変更すること)はないものを言う、副作
用については、本発明の要旨からみて、説明を省略する
関数を呼び出す(Call )場合、その仮引数への実
引数の束縛の方法には、ディー!バインド法とシャロー
ノ量インド(Shall譚B量11d)法がある。
ディー7’ t4インr法は前述しえように、束縛され
た変数名(x、y)と値(2e s>の対(ペア、すな
わち、Xは2.Yは3の対)を線型リストやスタック構
造に格納し、変数値を参照する場合に杜、最後に束縛さ
れた方向からシーケンシャルにたど9、最初に発見した
その変数の値を使うという環境の構成である。
すなわち、グイー!バインド法は、第3図(a) K示
すように、主記憶装置の記憶単位である語の構成が左、
右2つの部分に分かれ、1つのセルKlっていて、左部
に変数名を格納し、右部はそのセルが接続する次のセル
のアドレスを格納することによって次のセルのその変数
の値を知ることができ、沢山の変数がある場合は、第3
図(&>のように連結し、等測的に第3図(b)のよう
なFILO型のスタ、りを構成するものである。
関数コール(Call)の時に、引数変数に値を/曹イ
ンドするときには、環境リスト(を九は積項スタック)
O検索出発点の方向から、その名前と値の対をつなげ、
検索出発点−インタを新えに付加し九項目の先頭へ更新
する。すなわち、第3図(荀の主記憶装置上では、先頭
に1つのセ#1+1を設妙ることに対応し、そのセルが
つながる次のセルが亀であることに対応する。これ祉、
第3図(呻においては、スタックのフッタ、 (Pus
h )動作へに対応し、その変数名がm+1であって、
その値が(m+t)であるセルをスタ、fの最下段に!
シ、して入れることに対応する。関数のリターン(R@
ttrrm )時には、その関数がコールされたと愈の
状態に検索出発点−インータを戻す、すなわち、第3図
(a)の主記憶回路上では、先頭のセルm+1を1つと
って、セル1を先頭にすることに対応し、第3図(b)
では、1+1とその値(n+1)をポツプ動作8で外に
出すことを意味する。ディーグーインド法の長所は、ス
タックのグッシ、ブッダ動作が簡単であるので関数コー
ル時の引数変数のバインド処理関数リターン時の引数変
数のアンバインド(Unblsul )処理のオーバー
ヘッドが比較的少ないことであ多、短所は、大域変数(
自由変数とも呼ぶ)のように、かなり以前にバインドさ
れた変数すなわちスタ、りの奥の方にある変数の参照に
時間がかかることである。
シャルーパインP法は、各変数毎に、その値を保持する
ランメムアクセス域(Valu@C@llと呼ぶ)を設
け、関数コール時には引数変数のパリ、−セルへその実
引数を格納し、パリ、−セルに以前から存在し九値を、
線形リスト(またはスタック)へ名前と旧懐の対として
格納し、変数参照は対応するパリ、−セルを読むだけで
よく、関散りター7時には、その引数変数のΔす、−セ
ルへ線形リス)(tたはスタック)へ格納してあった出
値を戻す、シャローバインド法の長所は、変数参照時間
が短かいことであや、短所は関数コール時の引数変数の
バインド処理、関数のリターン時のアンバインド処理の
オーバーヘッドが大きいことである。
以上のようにディーfAインド法はシャローバインド法
に比べて、引数のバインド/アンバインド処理について
社高速であるが、変数の参照とくに大域変数6参照が遅
い、この点を改良するのが本発明の方式である。
本発明の目的は、上述したような関数型情報処理装置に
おいて、データ間のっながシを表わすリス)ヲティーグ
パインド方式に従ってスタックメモリ内に格納される変
数を参照するアクセスタイムを短縮する丸めに主記憶装
置の外部に連想Δ、ファを設けた関数型情報処理装置を
提供することにある。
本発明の特徴とするところ社、グログラムの構造及び実
行形態が仮引数としての変数名と実引数としての変数値
の対として環境リストであるFirst −In −L
a5t −0ust型のスタックメモリへ格納すること
によって呼ぶべき関数の仮引数変数へ実引数を束縛し、
呼ばれた関数は変数の値を参照する場合、上記環境リス
トの最近の束縛値を使って処理を行い、その関数の値が
得られれば、関数の仮引数変数を上記環境リストから削
除して上記゛関数値をリターンするという一連の処理を
繰返す関数型情報処理装置において変数名、変数値およ
びその変数が束縛されている前記環境リスト上の位置情
報を対として各ワードが構成され、foダラム実行中に
変数を参照する場合には変数名をキーとして連想検索し
内部変数と一致がとれれば対応する変数値を読出して使
い、不一致であれば前記環境リストから変数名を検索し
最近にみつかる変数値をつかう処理装置の動作にともな
ってその変数名と変数値を前記環境リスト上の位置情報
も加えて新しく書込み、引数変数名と名前が一致するワ
ードを削除する機能を有し、変数値を変更する場合には
、上記環境リスト上の最近値を変更する情報処理装置の
動作と共にその変数が内部に存在すればその変数値のみ
を変更する機能を有し、関数がその呼び側に復帰する場
合には、その引数名と束縛値の対を上記環境リストから
外す処理装置の動作に伴なってその環境リスト上の位置
情報をキーとして対応するワードを削除する機能を有す
る連想zf 277を設けた関数型情報処理装置である
以下図面を参照して本発明の一実施例を説明する。
まず、スタック上のディーグバインド方式では次のよう
な処理が行なわれる。関数呼び出しが起こる手前で実引
数がそろうとスタ、りは第4図(a)のようになる、こ
こで8TPはスタ、クト、flインクである関数が呼び
出されると呼び出された関数側で第4図(b)のような
形になる0以上のような処理によって第4図(、)のよ
うにスタ、り中の関数毎の情報間は、旧FPによってリ
ンクされる。ここでFPはフレームポインタすなわち現
在実行している関数の制御情報の先頭を指すものである
このリンクによって変数の参照があったときそれをたど
うて変数名をサーチすることによってその値を得ること
ができる。
たとえば Fl(Z) 露z2442(10) F2(x)=x2+!+F3(7) F3(x)=x’+1+Z という関係にある3つの関数において、Fl(3)の値
を求める場合を説明する。関数Fl(Z)をコールする
時点で仮引数2は3に束縛されて、環境リスト上にその
束縛関係が格納される。しか2し、Fl(Z)の計算に
紘関数F2(x)の値F2(10)が必要であるので、
関数F2(x)をコールする。
このコール時において仮引数XはlOに束縛されて環境
リスト上にその束縛関係が格納される。しかし、また、
F2(10)の計算には関数F3(X)の値F3(7)
が必要であるので、関数F3(x)をコールする。この
プール時において、仮引数Xは7に束縛されて環境リス
ト上にその束縛関係が格納される。しかし、F3(x)
の値F3(7)を求めるのにF3(X)−X’+1+Z
の2は入城変数、すなわち、その時点で束縛されない変
数であるが、2はPI(Z)をコールする時点で2■3
に束縛されているので、環境リスト上をさかのばりて2
が3であることをサーチするわけである。そしてはじめ
てF3(7)−7’+1+3が求ま)、F2(りにリタ
ーンしてF2(1G)冨102+10+F3(7)が求
t9、Fl(Z)にリターンして、Fl(3)−3”+
F2(10)とな夛、Fl(3)という値が求まるので
ある。
一般に関数型情報処理装置において、入城変数は束縛さ
れた局所変数(また娘仮引数)に比べその数は少いが少
数の入城変数が多数回参照される場合が多い、そこで本
発明の関数型情報処理装置において社新しく連想バッフ
ァを設置ある関数が入城変数を参照した場合、前記21
7丁にその変数がない場合は、環境リス)(tたはスタ
、り)をシーケンシャルに検索し、得九値をその変数名
と対にして前記高速な連想バッファメモリに格納してお
き、以後その変数が参照された場合には、変数名でバッ
ファを連想アクセスしてアクセス時間の大幅な短縮をす
ることができるのである。
第5図(荀の環境リストにおいて、関数F1はF2t、
F2はF3を、F3はF4を、F4はF5を、そして?
 !Sat 6をコールするようになっているとする。
このとき関数F6を 76(N)−N”+x+Z+Z2 であると仮定する。すなわち、Nは局所変数で、Xと2
は入城変数である。入城変数であるXは関数r 2 (
x * y )  をコールする時点でz W 5であ
るように束縛されてお夕、zは関数F3(Z)をコール
する時点で2■8であるように束縛されている。
F6(N)の値を計算するために、NとXそして2の各
変数を参照する喪め、まず環境リスト上をサーチするが
、局所変数Nに対しては即座にその値(例えばN−10
)をみつけることができるが、x ’p Z 社最初F
i環境すスト上をさかの埋ってサーチする必要があり、
X wm 5.7. wm gであることがわかる、し
かし、もし、この最初のサーチにおいて、見つけたX冨
5、Z−8を第S図(b)のように連想・(、ファに対
として格納しておけば、2*目の同じ変数名の参照状連
想/譬、7アをまずアクセスする仁とによってなされ高
速化されることになる。すなわち、F6(N)=N2+
x+Z+Z” O最後の項z2は連想バッファにZ−S
という対が格納されていて変数2をキーとして連想検索
すればZ−8であることがただちに決t I F2に代
入すればよいことになる。・本実明線このような連想/
4ツ7アを設置することKよって入城変数の参照アクセ
スタイムを速くすることができる。
このバッファメモリの持つべき機能は以下のものである
。なお、バッファメモリの具体的構成は第9図を参照し
て後述する。
(1)  ある入城変数を初めてアクセスした場合、そ
の変数をバッファへ登録しておき、以後のアクセスの高
速化をはかる。この場合、変数名、変数値の他に、その
バインド値の環境リスト(又はスタック)上での位置情
報EID (EnvlronmentId@ntlfl
@r )も同時に格納する。
(2)  与えられた変数名が内部格納変数名と一致す
るかどうかをI・−ド的に行ない、一致がとれればその
変数名に対応する値を読んだり書いたシすることができ
ること、すなわち、変数名をキーとしてバッファを連想
検索して、値をリードまたはライトする機能をもつこと
である。これは、変数を参照した)、変更したシする場
合に必要である。
(3)  変数名をキーとしてパ、7アメモリ上でその
変数と同一名の変数の有効表示ビットvをリセ、トする
機能を持つことである。これは参照されてI4ツ7アに
存在する入城変数と同一名の仮゛引数名をもつ関数を=
−ルする場合、バッファ上のその入城変数を削除するた
めに必要である。
この処理をおこたると同一変数名の参照の場合に、入城
変数より局所変数を優先するスコーピングの原則が8ず
れる。
(4)位置情報EIDをキーとして、それが一致するす
べての項目の有効表示ピッ)Vをリセットする機能を有
する。これは関数が呼び側の関数ヘリターンする時に、
そのリターンする関数の引数変数を全てバッファから除
去するのに必要である。この処理をおこたると、もしこ
の関数の仮引数変数と同一名の変数がこの関数以前にバ
インドされており、その変数を参照すると、既に環境か
ら除去されたはずの値が誤まって使われることになる。
上述したように、各変数を環境上での位置情報EID付
でバッファに格納していないと、リターンする関数の各
仮引数基をキーとして、それぞれ/fッ7アを検索して
除去するか、バッファのオールクリアを行なう必要があ
る。前者では、時間がかかり、後者では大域変数のバッ
ファ内での寿命拡初めて参照した関数がリターンするま
でとなり、バッフ70効果はほとんどなくなる。
第6図は、前述のべ、7アメモリの必要機能(1)を説
明する図であり、Elは参1関数の引数のバインドブロ
ック、Flは参1関数のフレーム、IPはエンパイμン
メントポインタ(環境リストイインタ)である、今、関
数#4がある変数VARを参照したとし、!8PからE
4.Ii:3.Elと環境を検索し、Elでその変数V
ARが見つかったとすると、/々ツファに格納する環境
リスト上の位置情報とはE2バインドツク、りのスタ、
り内アドレスEA2のことである。このアドレスを71
.シング(圧縮コード化)して、長さを短縮してEID
とすることもできる。
第7図(1) 、 (b)はバッファメモリの前述の必
要機能(3)を説明するものである。いま、関数#4が
仮引数基WARをもつ関数I#5をコールしようとして
いるとする。このときバインドブロックに変数vARと
その実引数値が対として格納され、更に、変数バッファ
に変数名vARをもつ項目がもし存在すれば、それのバ
リッドピットをリセットする。
第8図は、前述のバッファメモリの必要機能(4)を説
明するものである。関数#4が大域変数WARを参照し
、それがE2内で見つかり、/4ツ7リターンしてゆき
、関数Φ2#ザリターンする場合を考える。関数−#2
がリターンすれば、その引数WARのg2/4インド!
ロックでの束縛も解除されるので、z青y 7 yメモ
リ中の変数WAR4削除される必要がある。そこで、そ
のときの鳶Pの値IA2をキーとして/4ツファからE
IDが一致する項目を削除する。
第9図は、本発明の連想バッファメモリの具体的構成図
である。すなわち、グロダラムの構造および実行形態が
変数名と変数値の対として、環境リストへ格納すること
によって、呼ぶべき関数の仮引数変数に実引数を束縛し
、呼ばれた関数は、変数の値を参照する場合、上記環境
リストの最近の束縛値を使J、って処理を行ない、関数
の値が得られれば、関数の仮引数変数を上記環境リスト
から削除して、上記関数値をリターンするという一連の
処理を繰り返す関数型情報処理装置の内部に連想バッフ
ァメモリを新たに加えてなる構成図である。前記連想バ
ッファメモリの持つべき機能は、前記(1) 、 (2
) 、 (3) 、 (4)である。
上記実施例には、まずメモリ10,20.30が設けら
れ、それぞれが1〜nのレジスタで構成される。メモリ
lOは変数名ネームを格納するものであり、20は環境
アイデンテイ7アイヤEIDを格納するものであり、3
0は変数値ヴアリ、−を格納するものである。前記メモ
リ10,20゜30の1番”目(i vx l 、 2
.−” 1k )のレジスタはそれぞれが対応し、1つ
のワードを形成している。
これが第1の機能である。関数情報処理装置の環境リス
ト内のある大域変数をはじめてアクセスした場合、その
大域変数とKIDと変数値鵞前記連想バッファの前記メ
モリ10,20.30−にそれぞれ登録していき、以後
のアクセスの高速化を図る。連想バッファへの登録線変
数名ネームに対しては入力線101,103をネーム1
のセルに書込み/4ルス信号WEiを活性化して書き込
む。仁のとき同時に、環境位置情報である環境アイデン
テ4ファイヤ)JD t−人力線201,203を通し
て、EIDの1番目のセルに前記書込み信号WE1  
を活性化して書き込む、同様に変数値は入力線301か
らグアリ、−の1番目のセルに前記書込み信号wz1 
を活性化して書込む、前記第2の機能を行なうために、
連想パ、7ア社、与えられた変数名ネームが、あらかじ
め内部メモリlOに格納しておいた変数名と一致回路4
0で一致するかどうかを検出し、一致がとれれば出力1
i401o11本のうちのどれか一本が活性化されて、
選択回路6゜を制御して、対応するセル30の内容、す
なわち対応する変数値を出力線601に出力する。すな
わち、変数名を中−として、連想検索して変数値を読出
すことができる機能をもつ、しかも、変数値を格納する
メモリ30は書き込みも行えるので、変数名に対応する
値を読出し九9、書込んだ夛することができる。これは
、変数値を参照し九カ変更した〕するときに必要である
第3及び第4の機能である、変数名まえは環境アイデン
ティファイブをキーとして、連想メモリバッファから同
一名の項目の有効表示ビットvをリセットする機能を実
現するため、本実施例には、選択回路70、有効表示ビ
ット格納セル群8oおよび選択回路90が含まれる。
有効表示ピットvを格納するセル群のうち、Viミセル
前記変数名1、EIDi、変数値1を書き込むときの前
記書込み信号wg1によりてセットする。
変数名をキーとする場合は、選択回路70で一致回路4
01の出力を選択し、リセット信号1001が論理lの
とき、にの回路10Gによりて出力1002のうち一致
回路40で内部変数名1番目と入力された変数名1番目
の一致がとれたとき、対応する有効表示ピットv1がリ
セットされる。
有効表示ビットセル群の出力社選択回路90に入力され
、一致回路40の出力401の制御をうけて選択される
ので、出力901には変数名と格納変数名が一致がとれ
ている対応する有効表示ビット選択回路90の出力90
1に出力される。
また、機能(4)を実現する九めに、選択回路70で、
一致回路50の出力501を選択すれば入力のKIDと
格納されているKIDの一致がとれたとき、対応する有
効表示ビットがリセットされ、外部変数名と内部変数名
が一致がとれたとき、選択回路90で選択されて、出力
901に出力される。
以上説明し喪ように、本発明によれば、デーグ・臂イン
ド方式に従って実行していく関数型情報処理装置におい
て、特に大域変数の値を検索するアクセスが前記連想パ
、ファを使うことによって高速に行なうことができる。
【図面の簡単な説明】
第1図(a) l (b) 、 (e)は2進水リスト
を説明するための図、第2図は関数型情報処理を説明す
るための図、第3図(a) 、 (b) aディーfs
インド法を説明する図、第4図(a) e (b) e
 (@)はスタ、り上のディー 7’ z4インP法を
説明する図、第5図(a) e (b)は環境リストを
説明する図、第61社本発明のバッファメモリの機能を
説明する図、第7図(&) e (b)は本発明のバッ
ファメモリの他の機能を説明する図、第8図は本発明の
バッファメモリのさらに他の機能を説明する図、第9図
は本発明の一実施例のブロック図である。 10・・・変数名メモリ、20−・位置情報(ICID
)メモリ、30・−変数値メ篭り、40.50・・・一
致回路、60.70.90・・・選択回路。 青4図 (a)          (b) (c) 實5図(a) 實5図(b、) 實6図 青71!II(a) 青 青7図(J)) ホ 8図

Claims (1)

  1. 【特許請求の範囲】 1、 グロダラムの構造及び実行形態が仮引数としての
    変数名と実引数としての変数値の対として環境リストで
    あるFlrst −In −La5t −Out型のス
    タックメモリへ格納することによって呼ぶべき関数の仮
    引数変数へ実引数を束縛し、呼ばれた関数は変数の値を
    参照する場合、前記環境リストの最近の束縛値を使って
    処理を行い、その関数の値が得られれば関数の仮引数変
    数を前記環境リストから削除して前記関数値をリターン
    するという一連の処理を繰返す関数型情報処理装置にお
    いて、変数名、変数値およびその変数が束縛されている
    前記環境リスト上の位置情報を対として各ワードが構成
    され、グロダラム実行中に変数を参照する場合には、変
    数名をキーとして連想検索し、格納されている変数と一
    致がとれれば対応する変数値を読出して使い、不一致で
    あれば前記環境リストから変数名を検索し最近に見つか
    る変数値を使う処理装置の動作にともなってその変数名
    と変数値を前記環境リスト上の位置情報も加えて新しく
    書込み、それとともに引数変数名と名前が一致するワー
    ドを削除でき、変数値を変更する場合には前記環境リス
    ト上の最近値を変更する情報処理装置の動作と共に、そ
    の変数が内部に存在すればその変数値のみを変更し、関
    数がその呼び側に復帰する場合には、その引数基と束縛
    値の対を前記環境リストからはずす処理装置の動作にと
    もなって、その環境リスト上の位置情報をキーとして対
    応した −ワードを削除する連想バッファメモリを設置
    した関数型情報処理装置。 λ 変数値を変更する場合において、連想バッファメモ
    リ上にその変数が存在する場合には、連想/苛ツ7アメ
    モリ中の変数値のみを変更し環境リストの該変数値はそ
    のtまにしておき、連想/9ツフアメモリがオーバーロ
    ーした時に、そのリグレースされる変数の値t−環境リ
    ストに戻すようにした特許請求の範囲集1項記載の関数
    型情報処理装置・
JP56102900A 1981-06-30 1981-06-30 関数型情報処理装置 Granted JPS584452A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP56102900A JPS584452A (ja) 1981-06-30 1981-06-30 関数型情報処理装置
DE8282303394T DE3270597D1 (en) 1981-06-30 1982-06-29 Data processing system
EP82303394A EP0069525B1 (en) 1981-06-30 1982-06-29 Data processing system
US06/393,533 US4517640A (en) 1981-06-30 1982-06-30 Stack machine with improved cache memory for variables

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56102900A JPS584452A (ja) 1981-06-30 1981-06-30 関数型情報処理装置

Publications (2)

Publication Number Publication Date
JPS584452A true JPS584452A (ja) 1983-01-11
JPH0126092B2 JPH0126092B2 (ja) 1989-05-22

Family

ID=14339729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56102900A Granted JPS584452A (ja) 1981-06-30 1981-06-30 関数型情報処理装置

Country Status (1)

Country Link
JP (1) JPS584452A (ja)

Also Published As

Publication number Publication date
JPH0126092B2 (ja) 1989-05-22

Similar Documents

Publication Publication Date Title
US5652898A (en) Dictionary memory for text processing using word frequency and word recency occurrence information
US8332410B2 (en) Bit string merge sort device, method, and program
EP0309292A2 (en) Circuit transformation system, circuit transformation method, inverted logic generation method, and logic design system
CN108986910A (zh) 线上问答方法、装置、计算机设备和存储介质
CN113609806A (zh) 一种结合子图同构的量子线路程序通用变换方法
US8515976B2 (en) Bit string data sorting apparatus, sorting method, and program
CN109614325A (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
CN112651197A (zh) 电路划分预处理的方法及门级电路并行仿真的方法
US5502832A (en) Associative memory architecture
US6198813B1 (en) System and method for providing call processing services using call independent building blocks
US9201982B2 (en) Priority search trees
JPS584452A (ja) 関数型情報処理装置
US3596258A (en) Expanded search method and system in trained processors
CN118860412A (zh) 代码处理方法、训练数据的处理方法及模型微调方法
US20240184996A1 (en) Method and system for generating contextual explanation for model predictions
CN119474540A (zh) 一种知识引导的基于大语言模型的可信api推荐方法
US20240264809A1 (en) Generation of synthetic training data using grammar mapping
KR102146625B1 (ko) 오토마타 기반 증분적 중위 확률 계산 장치 및 방법
EP3113038B1 (en) A data handling method
JP2000187607A (ja) 名前変換装置および記録媒体
US8666925B1 (en) Method for parallel computation of a finite state machine
CN116303892B (zh) 集束搜索处理方法、装置、计算机设备和存储介质
De et al. A new tuple space structure for tuple space based mobile middleware platforms
EP3063672B1 (en) Text sample entry group formulation
CN114895889A (zh) 前端原生组件的语法扩展方法、装置、设备和存储介质