JPS584452A - Function type information processor - Google Patents

Function type information processor

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
Japanese (ja)
Other versions
JPH0126092B2 (en
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/en
Priority to DE8282303394T priority patent/DE3270597D1/en
Priority to EP82303394A priority patent/EP0069525B1/en
Priority to US06/393,533 priority patent/US4517640A/en
Publication of JPS584452A publication Critical patent/JPS584452A/en
Publication of JPH0126092B2 publication Critical patent/JPH0126092B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Abstract

PURPOSE:To shorten an access time during which the value of a large region variable is retrieved, by providing an associative buffer in addition to a main storage device. CONSTITUTION:For a function type information processor, the real subtracting number is connected to the tentative subtracting number of the functions F2 and F3 to be called by the structure of a program and the style of execution. The called function carries out a prescribed procedure with reference to the transferred real subtracting number and a large region variable and sends the function value back to the calling side to perform a process of information. An associative buffer is provided in addition to a main storage device. Then a variable is registered to the associative buffer in case the first access is given to a certain large region variable. Thus the subsequent accesses can be accelerated.

Description

【発明の詳細な説明】 本発明は、数値ではなく記号を処理するリスl(Lls
pすなわちLi5t Processor )のような
関数型言語用の関数型情報処理装置に係〕、とくに関数
が実行される環境(変数の値として何をつかうかという
こと)をコンビ、−タ内部の記憶回路にスタック構造的
に格納するにあたって、そのスタ。
DETAILED DESCRIPTION OF THE INVENTION The present invention provides an Lls
Regarding functional information processing devices for functional languages such as Li5t Processor), in particular the environment in which the function is executed (what to use as the value of the variable), the internal memory circuit of the When storing it in a stack structure, its stack.

りに格納された変数の検索時間を短縮する良めに上記ス
タックメ毫りの外部に連想dラッテを設けることを特徴
とする関数型情報処理装置に関する。
The present invention relates to a functional information processing apparatus characterized in that an associative dlatte is provided outside the stack memory in order to shorten the search time for variables stored in the memory.

リスプは第1図に示すような2進水リストすなわち記号
のつながりを閉路を含まない節点と枝の集合である木構
造(第1図(a))であられしえものを扱うものである
。すなわち、纂IWA(a)のような木構造であられさ
れる記号のつなかpt第1図(b)のように各ノードか
らでる枝が2本づつである2進水表現に直し良形で第1
図(@)に示されるような主記憶装置に格納する。すな
わち、各リストセルは主記憶装置の1##また[211
からなり七の各セルは左、右2つの部分からなる。各セ
ルの左の部分は畳通鉱ある記号、たとえば木という文字
の記号のピットIり一ンが格納され、右の部分はその記
号とつながるべき、次の記号を格納しているセルの番地
を格納することによって2つセルが連結して−、ること
を表現する。従って、第1図(・)のりストセルのっな
が)は、J11’図(b)の2進木リストを記憶回路上
で実現しているものであるeリスプは、このようなリス
ト構造をリス!言語を実行することによりて、fc1セ
、?を使りて動的に変換し、目的のリスト構造を得る装
置である。
Lisp handles the binary list shown in Figure 1, that is, the tree structure (Figure 1 (a)), which is a collection of nodes and branches that do not contain cycles, in which symbols are connected. In other words, the connections between the symbols arranged in a tree structure like IWA (a) can be converted into a binary representation with two branches coming out of each node as shown in Figure 1 (b), which is a good form. 1st
It is stored in the main memory as shown in the figure (@). That is, each list cell is stored in main memory at 1## or [211
Each cell of seven consists of two parts, left and right. The left part of each cell stores the pit I line of a certain symbol, for example the symbol for the character 木, and the right part contains the address of the cell that stores the next symbol that should be connected to that symbol. By storing , it is expressed that two cells are connected. Therefore, the list cell list shown in Figure 1 (・) realizes the binary tree list shown in Figure J11' (b) on the memory circuit. squirrel! By executing the language fc1 se,? This is a device that uses dynamic conversion to obtain the desired list structure.

リスプにおいてfaダッムするということは、2進水リ
ストを変換する丸めに必要な以下の5つの基本関数を組
み合せて形成される関数を定義し、その値を求めること
である・ 5つの基本関数とは1 イ)  ear(z)カール 2過木リス)Xの左の枝の先にある2進水リストを値と
jる・ 口)  cdr(X)クダー 2進木リス)Xの右の枝の先にある2進木リストを値と
する。
Fa dumbing in Lisp means defining a function formed by combining the following five basic functions necessary for rounding to convert a binary list, and finding its value.・The five basic functions and is 1 b) ear (z) curl 2 binary tree squirrel) the value is the binary list at the end of the left branch of X) cdr (X) kuda binary tree squirrel) right branch of X The value is the binary tree list at the end of .

/9  @0!kl(X:Y) コンス新しいリスト・
セルを設け、その左の枝を2進木リス)Xとし右の枝を
2進木リストYとするような新たな2進水リストを作っ
てそれを値とする。
/9 @0! kl(X:Y) Cons new list/
A cell is provided, and a new binary list is created in which the left branch is the binary tree list (X) and the right branch is the binary tree list Y, and this is used as the value.

→ atom(X)  アトム Xがアトムの時、真という値(”?”中1*T*”で示
1)す)ell夛、そうでないとき、偽(″NIL”と
いうアトムで示す)とする。
→ atom(X) When atom .

ホ)・q (X:Y)イク XとYが同じ2進木リストの時、真の値(′″T#や一
*T*’)を城)、そうでない時、偽の値(”NIL’
 )を取る。
e)・q (X:Y) When X and Y are the same binary tree list, the true value ('''T# or 1*T*') is used, otherwise the false value ("NIL'
)I take the.

例えば、/ (x e y ) w= z74 、Xの
定義L−f−λ((X I Y ) ; X’ +y”
)と表わすことにより、/(2、3)の値は、 λ((xty);x’+yつ(2,3)口2’ + 3
2とな)、変数の対応関係を明確に規定することができ
る。
For example, / (x ey) w= z74, the definition of X L-f-λ((X I Y); X' + y"
), the value of /(2,3) is λ((xty);x'+y(2,3)mouth2'+3
2), the correspondence of variables can be clearly defined.

こζで%(X−Y)は仮引数と呼ばれる変数でありて(
2,3)は(x、y)のそのときの値である実引数と呼
ばれるものである。そして、この実引数(2,3)を仮
引数(x、y)に代入することt−束縛(blamlm
g )すると呼び、実引数を仮引数に束縛することによ
って関数の値、この場合2 +3 という目的のリスト
をつくることがリスff実行することである。したがっ
て、リス!すなわち関数型情報処理装置にあっては、仮
引数と実引数をどのように束縛するかが問題となる。
In this ζ, %(X-Y) is a variable called a formal argument, and (
2, 3) are called actual arguments, which are the current values of (x, y). Then, by assigning this actual argument (2, 3) to the formal argument (x, y), t-binding (blamlm
g) Calling it and creating a desired list of function values, in this case 2 + 3, by binding the actual arguments to the formal arguments is to execute the list ff. Hence the squirrel! In other words, in a functional information processing device, the problem is how to bind formal arguments and actual arguments.

本発明において社、変数の束縛値(BlndVal−・
)が線形リスト(II境ツリストすなわちFILO(F
lrst  I!L  La5t  Out  ゛ま 
lヒは ハah dovns  Pop  up   
)  11スタツクへ変数名と値の対で格納される。こ
こでFILOIJlスタ、りとは前記記憶回路上で2進
水リスト構造でデータを間接アドレス方式(すなわち、
あるセルに次につながるセルのアドレスを格納しておく
方式)で格納していくむとである。この変数名と値との
対を格納していく順序は、引数変数の関数が呼ばれたと
きに実引数を値とする順番になる、いわゆるダイナさ、
クスコーピンダ(Dynaml@ii*ep1mg )
型Oml境をもつ関数型言語でありて、その変数の値が
なにであるかを参照する手順蝋、基本的には上記環境リ
スト(又はスタ。
In the present invention, the binding value of the variable (BlndVal-・
) is a linear list (II boundary list or FILO(F
lrst I! L La5t Out ゛ma
lhi haha dovns Pop up
) 11 stack as a pair of variable name and value. Here, the FILOIJl star and the data are stored on the memory circuit in a binary list structure using an indirect addressing method (i.e.,
This method stores the address of the next cell in one cell. The order in which pairs of variable names and values are stored is the so-called dyna, which is the order in which the actual arguments are the values when the function of the argument variable is called.
Cusco Pinda (Dynaml@ii*ep1mg)
It is a functional language with an Oml type boundary, and the procedure to refer to what the value of the variable is, basically the environment list (or star) mentioned above.

り)を先頭からシーケンシャルに検索して最初に見つか
つ九値を使う、いわゆるディーfバインド(D・すIl
lmd)fi変数束縛を・行なう場合に、大域変数(関
数の引数のように関数を起動する時に束縛値が決定され
ている局所変数とは異なり、それ以前からその値が決め
られている変数)taし出すアクセスタイムを短縮する
九めに主記憶装置の他に連想ノ量ツ7アを設けることが
本発明の特徴であ一般に、第2図に示すように関数型と
は、そのグーグクム構造や実行形態が呼ぶべき関数すな
わち実行するべき関数f−λ((X # Y ) : 
X” + Y” )の仮引数(x、y)へ実引数(2,
3)を結合すなわち束縛(バインド)シ、呼けれたく起
動された)関数社、捜されたすなわち代入されるべき実
引数や大域変数を参照して所定の手続きを実行し、その
関数の値2’ + 32を呼び側へ返し、それ以外の副
作用(II境を変更すること)はないものを言う、副作
用については、本発明の要旨からみて、説明を省略する
The so-called D-bind method searches sequentially from the beginning and uses the nine values found first.
lmd) When performing fi variable binding, use global variables (variables whose values are determined beforehand, unlike local variables whose binding values are determined when the function is started, such as function arguments). The feature of the present invention is to provide an associative memory in addition to the main memory in order to shorten the access time.In general, a functional type is defined by its googukum structure, as shown in Figure 2. and the function that the execution form should call, that is, the function that should be executed f−λ((X #Y):
The actual arguments (2, y) to the formal arguments (x, y) of
3) Binding, or binding, a function (invoked to be called), executes a predetermined procedure by referring to the actual argument or global variable that is searched for, or assigns, and returns the value of the function 2. ' + 32 is returned to the caller, and there are no other side effects (changing the II boundary). Considering the gist of the present invention, the explanation of side effects will be omitted.

関数を呼び出す(Call )場合、その仮引数への実
引数の束縛の方法には、ディー!バインド法とシャロー
ノ量インド(Shall譚B量11d)法がある。
When calling a function, the method of binding the actual argument to the formal argument is D! There are the bind method and the Shallon method.

ディー7’ t4インr法は前述しえように、束縛され
た変数名(x、y)と値(2e s>の対(ペア、すな
わち、Xは2.Yは3の対)を線型リストやスタック構
造に格納し、変数値を参照する場合に杜、最後に束縛さ
れた方向からシーケンシャルにたど9、最初に発見した
その変数の値を使うという環境の構成である。
As mentioned above, the D7't4inr method creates a linear list of bound variable names (x, y) and values (2e s> pairs, that is, pairs of X for 2 and Y for 3). This is an environment configuration in which variables are stored in a stack structure, and when a variable value is referenced, it is sequentially traced from the direction in which it was last bound, and the value of the variable found first is used.

すなわち、グイー!バインド法は、第3図(a) K示
すように、主記憶装置の記憶単位である語の構成が左、
右2つの部分に分かれ、1つのセルKlっていて、左部
に変数名を格納し、右部はそのセルが接続する次のセル
のアドレスを格納することによって次のセルのその変数
の値を知ることができ、沢山の変数がある場合は、第3
図(&>のように連結し、等測的に第3図(b)のよう
なFILO型のスタ、りを構成するものである。
In other words, Gui! In the binding method, as shown in Figure 3(a), the structure of the word, which is the storage unit of the main memory, is
The right part is divided into two parts, one cell Kl, the left part stores the variable name, and the right part stores the address of the next cell to which that cell connects, thereby determining the value of that variable in the next cell. can be known and there are many variables, the third
They are connected as shown in the figure (&>) to form a FILO-type star array as shown in FIG. 3(b) isometrically.

関数コール(Call)の時に、引数変数に値を/曹イ
ンドするときには、環境リスト(を九は積項スタック)
O検索出発点の方向から、その名前と値の対をつなげ、
検索出発点−インタを新えに付加し九項目の先頭へ更新
する。すなわち、第3図(荀の主記憶装置上では、先頭
に1つのセ#1+1を設妙ることに対応し、そのセルが
つながる次のセルが亀であることに対応する。これ祉、
第3図(呻においては、スタックのフッタ、 (Pus
h )動作へに対応し、その変数名がm+1であって、
その値が(m+t)であるセルをスタ、fの最下段に!
When making a function call (Call), when inputting a value to an argument variable, use the environment list (9 is the product term stack)
O Connect the name and value pairs from the direction of the search starting point,
Search starting point - add a new inter and update to the beginning of nine items. In other words, in the main memory of FIG.
Figure 3 (In groaning, the footer of the stack, (Pus
h) corresponding to the action, whose variable name is m+1,
Place the cell whose value is (m+t) at the bottom of f!
.

シ、して入れることに対応する。関数のリターン(R@
ttrrm )時には、その関数がコールされたと愈の
状態に検索出発点−インータを戻す、すなわち、第3図
(a)の主記憶回路上では、先頭のセルm+1を1つと
って、セル1を先頭にすることに対応し、第3図(b)
では、1+1とその値(n+1)をポツプ動作8で外に
出すことを意味する。ディーグーインド法の長所は、ス
タックのグッシ、ブッダ動作が簡単であるので関数コー
ル時の引数変数のバインド処理関数リターン時の引数変
数のアンバインド(Unblsul )処理のオーバー
ヘッドが比較的少ないことであ多、短所は、大域変数(
自由変数とも呼ぶ)のように、かなり以前にバインドさ
れた変数すなわちスタ、りの奥の方にある変数の参照に
時間がかかることである。
This corresponds to putting it in. Function return (R@
ttrrm) When the function is called, the search starting point-inter is returned to the original state. In other words, in the main memory circuit of FIG. 3(a), the first cell m+1 is taken and cell 1 is Corresponding to placing it at the beginning, Fig. 3(b)
This means that 1+1 and its value (n+1) are brought out by pop operation 8. The advantage of the Diggind method is that the stack operations are simple, so the overhead of binding argument variables when calling a function and unbinding argument variables when returning from a function is relatively small. Many, the disadvantage is that global variables (
It takes time to reference variables that were bound a long time ago, such as free variables (also called free variables), which are located deep in the register.

シャルーパインP法は、各変数毎に、その値を保持する
ランメムアクセス域(Valu@C@llと呼ぶ)を設
け、関数コール時には引数変数のパリ、−セルへその実
引数を格納し、パリ、−セルに以前から存在し九値を、
線形リスト(またはスタック)へ名前と旧懐の対として
格納し、変数参照は対応するパリ、−セルを読むだけで
よく、関散りター7時には、その引数変数のΔす、−セ
ルへ線形リス)(tたはスタック)へ格納してあった出
値を戻す、シャローバインド法の長所は、変数参照時間
が短かいことであや、短所は関数コール時の引数変数の
バインド処理、関数のリターン時のアンバインド処理の
オーバーヘッドが大きいことである。
The Shalupine P method provides a runmem access area (called Valu@C@ll) for each variable to hold its value, and when calling a function, stores the actual argument in the argument variable pari, - cell, −The nine values that existed in the cell before,
Store it in a linear list (or stack) as a name-old pair, and variable references only need to read the corresponding paris, -cell, and when the function is removed, a linear list of its argument variables is stored in the Δs, - cell. ) (t or stack) The advantage of the shallow binding method is that variable reference time is short, and the disadvantages are the binding process of argument variables at function call and function return. The problem is that the overhead of unbinding processing is large.

以上のようにディーfAインド法はシャローバインド法
に比べて、引数のバインド/アンバインド処理について
社高速であるが、変数の参照とくに大域変数6参照が遅
い、この点を改良するのが本発明の方式である。
As described above, the DfA ind method is faster in binding/unbinding arguments than the shallow binding method, but variable references, especially global variable 6 references, are slow.The present invention aims to improve this point. This is the method.

本発明の目的は、上述したような関数型情報処理装置に
おいて、データ間のっながシを表わすリス)ヲティーグ
パインド方式に従ってスタックメモリ内に格納される変
数を参照するアクセスタイムを短縮する丸めに主記憶装
置の外部に連想Δ、ファを設けた関数型情報処理装置を
提供することにある。
An object of the present invention is to shorten the access time for referencing variables stored in stack memory according to the data binding method in a functional information processing device as described above. An object of the present invention is to provide a functional information processing device in which associations Δ and F are provided outside a main memory for rounding.

本発明の特徴とするところ社、グログラムの構造及び実
行形態が仮引数としての変数名と実引数としての変数値
の対として環境リストであるFirst −In −L
a5t −0ust型のスタックメモリへ格納すること
によって呼ぶべき関数の仮引数変数へ実引数を束縛し、
呼ばれた関数は変数の値を参照する場合、上記環境リス
トの最近の束縛値を使って処理を行い、その関数の値が
得られれば、関数の仮引数変数を上記環境リストから削
除して上記゛関数値をリターンするという一連の処理を
繰返す関数型情報処理装置において変数名、変数値およ
びその変数が束縛されている前記環境リスト上の位置情
報を対として各ワードが構成され、foダラム実行中に
変数を参照する場合には変数名をキーとして連想検索し
内部変数と一致がとれれば対応する変数値を読出して使
い、不一致であれば前記環境リストから変数名を検索し
最近にみつかる変数値をつかう処理装置の動作にともな
ってその変数名と変数値を前記環境リスト上の位置情報
も加えて新しく書込み、引数変数名と名前が一致するワ
ードを削除する機能を有し、変数値を変更する場合には
、上記環境リスト上の最近値を変更する情報処理装置の
動作と共にその変数が内部に存在すればその変数値のみ
を変更する機能を有し、関数がその呼び側に復帰する場
合には、その引数名と束縛値の対を上記環境リストから
外す処理装置の動作に伴なってその環境リスト上の位置
情報をキーとして対応するワードを削除する機能を有す
る連想zf 277を設けた関数型情報処理装置である
The feature of the present invention is that the structure and execution form of the program is an environment list as a pair of variable names as formal arguments and variable values as actual arguments.
Bind the actual argument to the formal argument variable of the function to be called by storing it in the stack memory of type a5t-0ust,
When the called function refers to the value of a variable, it processes using the most recent binding value in the environment list above, and if the value of the function is obtained, it deletes the function's formal argument variable from the environment list. In a functional information processing device that repeats a series of processes of returning a function value, each word is constructed as a pair of a variable name, a variable value, and position information on the environment list to which the variable is bound. When referencing a variable during execution, an associative search is performed using the variable name as a key, and if there is a match with an internal variable, the corresponding variable value is read and used; if there is a mismatch, the variable name is searched from the environment list and found recently. It has a function to newly write the variable name and variable value along with the operation of the processing device that uses the variable value, adding the position information on the environment list, and delete the word whose name matches the argument variable name. When changing, the information processing device operates to change the most recent value on the environment list, and if the variable exists internally, it has a function to change only the variable value, and the function returns to its caller. When doing so, an association zf 277 is used which has the function of deleting the corresponding word using the position information on the environment list as a key in conjunction with the operation of the processing device to remove the pair of argument name and binding value from the environment list. This is a functional information processing device.

以下図面を参照して本発明の一実施例を説明する。An embodiment of the present invention will be described below with reference to the drawings.

まず、スタック上のディーグバインド方式では次のよう
な処理が行なわれる。関数呼び出しが起こる手前で実引
数がそろうとスタ、りは第4図(a)のようになる、こ
こで8TPはスタ、クト、flインクである関数が呼び
出されると呼び出された関数側で第4図(b)のような
形になる0以上のような処理によって第4図(、)のよ
うにスタ、り中の関数毎の情報間は、旧FPによってリ
ンクされる。ここでFPはフレームポインタすなわち現
在実行している関数の制御情報の先頭を指すものである
First, in the digbind method on the stack, the following processing is performed. When the actual arguments are ready before a function call occurs, the star and rear become as shown in Figure 4 (a), where 8TP is the star, cut, and fl ink.When a function is called, the By processing 0 or more in the form shown in FIG. 4(b), the information for each function in the star format as shown in FIG. 4(,) is linked by the old FP. Here, FP is a frame pointer, that is, it points to the beginning of the control information of the function currently being executed.

このリンクによって変数の参照があったときそれをたど
うて変数名をサーチすることによってその値を得ること
ができる。
When a variable is referenced through this link, its value can be obtained by following it and searching for the variable name.

たとえば 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)をコールする。
For example, Fl(Z) Dew z2442(10) F2(x)=x2+! +F3(7) A case will be described in which the value of Fl(3) is determined in three functions having the relationship: F3(x)=x'+1+Z. At the time of calling the function Fl(Z), the formal argument 2 is bound to 3, and the binding relationship is stored on the environment list. However, since the value F2(10) of the horizontal function F2(x) is required to calculate Fl(Z),
Call function 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)という値が求まるので
ある。
At the time of this call, the formal argument X is bound to lO, and the binding relationship is stored on the environment list. But also,
To calculate F2(10), use the value F3(7) of function F3(X)
is necessary, so call the function F3(x). During this pooling, the formal argument X is bound to 7, and the binding relationship is stored on the environment list. However, F3(x)
To find the value F3(7), use F3(X)-X'+1+Z
2 is an entry variable, that is, a variable that is not bound at that time, but 2 is a variable that is not bound at that time, but 2
Since it is bound to
is 3. Then, F3 (7) - 7' + 1 + 3 is found for the first time), F2 (returns to F2 (1G) 102 + 10 + F3 (7) is found t9, returns to Fl (Z), Fl (3) - 3 ”+
The value F2(10) and Fl(3) can be found.

一般に関数型情報処理装置において、入城変数は束縛さ
れた局所変数(また娘仮引数)に比べその数は少いが少
数の入城変数が多数回参照される場合が多い、そこで本
発明の関数型情報処理装置において社新しく連想バッフ
ァを設置ある関数が入城変数を参照した場合、前記21
7丁にその変数がない場合は、環境リス)(tたはスタ
、り)をシーケンシャルに検索し、得九値をその変数名
と対にして前記高速な連想バッファメモリに格納してお
き、以後その変数が参照された場合には、変数名でバッ
ファを連想アクセスしてアクセス時間の大幅な短縮をす
ることができるのである。
In general, in a functional type information processing device, the number of entering variables is smaller than bound local variables (and daughter formal arguments), but a small number of entering variables are often referenced many times. If a function that newly installs an associative buffer in an information processing device refers to an input variable, the above 21
If the variable does not exist in 7-cho, sequentially search for the environment list) (t or star, ri) and store the obtained nine values in pairs with the variable name in the high-speed associative buffer memory, When that variable is subsequently referenced, the buffer can be accessed associatively using the variable name, greatly reducing access time.

第5図(荀の環境リストにおいて、関数F1はF2t、
F2はF3を、F3はF4を、F4はF5を、そして?
 !Sat 6をコールするようになっているとする。
Figure 5 (In Xun's environment list, function F1 is F2t,
F2 is F3, F3 is F4, F4 is F5, and?
! Suppose you want to call 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であるように束縛されている。
At this time, assume that the function F6 is 76(N)-N"+x+Z+Z2. That is, N is a local variable, and X and 2
is the entering variable. The entry variable X is a function r 2 (
At the time of calling x*y), z is bound to be 5, and z is bound to be 2*8 at the time of calling the function F3(Z).

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よって入城変数の参照アクセ
スタイムを速くすることができる。
In order to calculate the value of F6(N), we first search the environment list by referring to the variables N, 10
), but x 'p Z company's first F
It is necessary to search backwards on the i-Environment list.
X wm 5.7. It turns out that wm g. However, if in this first search, we store the found X-values 5 and Z-8 as a pair in the association (, f) as shown in Figure S (b), then , 2* Reference letter association of the same variable name/parable, 7a is accessed first, and the speed is increased. That is, F6 (N) = N2 +
x+Z+Z" O last term z2 is Z-S in the associative buffer
If the pair ``tIF'' is stored and an associative search is performed using variable 2 as a key, it will be immediately determined that it is Z-8, and all that is required is to substitute it into tIF2.・Honjimei Line This kind of association/
By installing 4x7a, the reference access time for entry variables can be made faster.

このバッファメモリの持つべき機能は以下のものである
。なお、バッファメモリの具体的構成は第9図を参照し
て後述する。
The functions that this buffer memory should have are as follows. Note that the specific configuration of the buffer memory will be described later with reference to FIG.

(1)  ある入城変数を初めてアクセスした場合、そ
の変数をバッファへ登録しておき、以後のアクセスの高
速化をはかる。この場合、変数名、変数値の他に、その
バインド値の環境リスト(又はスタック)上での位置情
報EID (EnvlronmentId@ntlfl
@r )も同時に格納する。
(1) When a certain entry variable is accessed for the first time, the variable is registered in a buffer to speed up subsequent accesses. In this case, in addition to the variable name and variable value, the position information EID (EnvlronmentId@ntlfl) of the bind value on the environment list (or stack)
@r ) is also stored at the same time.

(2)  与えられた変数名が内部格納変数名と一致す
るかどうかをI・−ド的に行ない、一致がとれればその
変数名に対応する値を読んだり書いたシすることができ
ること、すなわち、変数名をキーとしてバッファを連想
検索して、値をリードまたはライトする機能をもつこと
である。これは、変数を参照した)、変更したシする場
合に必要である。
(2) It is possible to check whether a given variable name matches an internally stored variable name using an I-code, and if there is a match, it is possible to read or write the value corresponding to that variable name. , it has the ability to read or write values by associatively searching the buffer using variable names as keys. This is necessary if the variable has been referenced (referenced) or changed.

(3)  変数名をキーとしてパ、7アメモリ上でその
変数と同一名の変数の有効表示ビットvをリセ、トする
機能を持つことである。これは参照されてI4ツ7アに
存在する入城変数と同一名の仮゛引数名をもつ関数を=
−ルする場合、バッファ上のその入城変数を削除するた
めに必要である。
(3) It has a function to use a variable name as a key to reset the valid display bit v of a variable with the same name as that variable on the memory. This refers to a function that has the same parameter name as the entry variable that exists in I47A.
- needed to delete that input variable on the buffer.

この処理をおこたると同一変数名の参照の場合に、入城
変数より局所変数を優先するスコーピングの原則が8ず
れる。
When this process occurs, the scoping principle that gives priority to local variables over entry variables when referencing the same variable name is shifted by 8.

(4)位置情報EIDをキーとして、それが一致するす
べての項目の有効表示ピッ)Vをリセットする機能を有
する。これは関数が呼び側の関数ヘリターンする時に、
そのリターンする関数の引数変数を全てバッファから除
去するのに必要である。この処理をおこたると、もしこ
の関数の仮引数変数と同一名の変数がこの関数以前にバ
インドされており、その変数を参照すると、既に環境か
ら除去されたはずの値が誤まって使われることになる。
(4) It has a function to use the position information EID as a key and reset the valid display (Pi)V of all items that match. This means that when a function returns to the calling function,
Required to remove all argument variables of the returning function from the buffer. If this process occurs, if a variable with the same name as a formal argument variable of this function was bound before this function, and that variable is referenced, a value that should have already been removed from the environment may be mistakenly used. become.

上述したように、各変数を環境上での位置情報EID付
でバッファに格納していないと、リターンする関数の各
仮引数基をキーとして、それぞれ/fッ7アを検索して
除去するか、バッファのオールクリアを行なう必要があ
る。前者では、時間がかかり、後者では大域変数のバッ
ファ内での寿命拡初めて参照した関数がリターンするま
でとなり、バッフ70効果はほとんどなくなる。
As mentioned above, if each variable is not stored in a buffer with its environmental position information EID, each /f7a is searched and removed using each formal argument group of the returning function as a key. , it is necessary to clear all buffers. In the former case, it takes time, and in the latter case, the lifetime of the global variable in the buffer is extended until the referenced function returns, and the effect of the buffer 70 is almost eliminated.

第6図は、前述のべ、7アメモリの必要機能(1)を説
明する図であり、Elは参1関数の引数のバインドブロ
ック、Flは参1関数のフレーム、IPはエンパイμン
メントポインタ(環境リストイインタ)である、今、関
数#4がある変数VARを参照したとし、!8PからE
4.Ii:3.Elと環境を検索し、Elでその変数V
ARが見つかったとすると、/々ツファに格納する環境
リスト上の位置情報とはE2バインドツク、りのスタ、
り内アドレスEA2のことである。このアドレスを71
.シング(圧縮コード化)して、長さを短縮してEID
とすることもできる。
FIG. 6 is a diagram explaining the necessary function (1) of the 7 memory mentioned above, where El is the binding block of the argument of the reference 1 function, Fl is the frame of the reference 1 function, and IP is the empowerment pointer ( Suppose that function #4 now references a variable VAR, which is an environment list interface). 8P to E
4. Ii:3. Search El and the environment, and use El to set the variable V
Assuming that an AR is found, the location information on the environment list stored in the /tsufa is E2 bind, star,
This refers to the internal address EA2. This address is 71
.. (compression coding) to shorten the length and create an EID.
It is also possible to do this.

第7図(1) 、 (b)はバッファメモリの前述の必
要機能(3)を説明するものである。いま、関数#4が
仮引数基WARをもつ関数I#5をコールしようとして
いるとする。このときバインドブロックに変数vARと
その実引数値が対として格納され、更に、変数バッファ
に変数名vARをもつ項目がもし存在すれば、それのバ
リッドピットをリセットする。
FIGS. 7(1) and 7(b) explain the above-mentioned necessary function (3) of the buffer memory. Suppose that function #4 is about to call function I#5 which has a formal argument group WAR. At this time, the variable vAR and its actual argument value are stored as a pair in the bind block, and if an item with the variable name vAR exists in the variable buffer, its valid pit is reset.

第8図は、前述のバッファメモリの必要機能(4)を説
明するものである。関数#4が大域変数WARを参照し
、それがE2内で見つかり、/4ツ7リターンしてゆき
、関数Φ2#ザリターンする場合を考える。関数−#2
がリターンすれば、その引数WARのg2/4インド!
ロックでの束縛も解除されるので、z青y 7 yメモ
リ中の変数WAR4削除される必要がある。そこで、そ
のときの鳶Pの値IA2をキーとして/4ツファからE
IDが一致する項目を削除する。
FIG. 8 explains the necessary function (4) of the buffer memory mentioned above. Consider the case where function #4 references global variable WAR, finds it in E2, returns /47, and then returns function Φ2#. Function-#2
If returns, g2/4 India of that argument WAR!
Since the lock binding is also released, the variable WAR4 in the z blue y 7 y memory must be deleted. Therefore, using the value IA2 of Tobi P at that time as a key, /4Tsfa to E
Delete items with matching IDs.

第9図は、本発明の連想バッファメモリの具体的構成図
である。すなわち、グロダラムの構造および実行形態が
変数名と変数値の対として、環境リストへ格納すること
によって、呼ぶべき関数の仮引数変数に実引数を束縛し
、呼ばれた関数は、変数の値を参照する場合、上記環境
リストの最近の束縛値を使J、って処理を行ない、関数
の値が得られれば、関数の仮引数変数を上記環境リスト
から削除して、上記関数値をリターンするという一連の
処理を繰り返す関数型情報処理装置の内部に連想バッフ
ァメモリを新たに加えてなる構成図である。前記連想バ
ッファメモリの持つべき機能は、前記(1) 、 (2
) 、 (3) 、 (4)である。
FIG. 9 is a specific configuration diagram of the associative buffer memory of the present invention. In other words, the structure and execution form of Glodarum binds the actual argument to the formal argument variable of the function to be called by storing it as a pair of variable name and variable value in the environment list, and the called function stores the value of the variable. When referencing, use the most recent binding value in the environment list, and if the value of the function is obtained, delete the formal argument variable of the function from the environment list and return the function value. FIG. 2 is a configuration diagram in which an associative buffer memory is newly added to the inside of a functional information processing device that repeats a series of processes. The functions that the associative buffer memory should have are as described in (1) and (2).
), (3), and (4).

上記実施例には、まずメモリ10,20.30が設けら
れ、それぞれが1〜nのレジスタで構成される。メモリ
lOは変数名ネームを格納するものであり、20は環境
アイデンテイ7アイヤEIDを格納するものであり、3
0は変数値ヴアリ、−を格納するものである。前記メモ
リ10,20゜30の1番”目(i vx l 、 2
.−” 1k )のレジスタはそれぞれが対応し、1つ
のワードを形成している。
In the above embodiment, first, memories 10, 20, and 30 are provided, each of which is composed of 1 to n registers. Memory IO stores variable names, 20 stores environment identity 7 AiyaEID, and 3
0 is for storing the variable value Vari, -. The first memory 10, 20, 30 (i vx l, 2
.. -"1k) registers correspond to each other and form one word.

これが第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、書込んだ夛することができる。これは
、変数値を参照し九カ変更した〕するときに必要である
This is the first function. When a certain global variable in the environment list of the function information processing device is accessed for the first time, the global variable, KID, and variable value are registered in the memories 10, 20, and 30- of the associative buffer, respectively, and are used for subsequent accesses. Try to speed it up. For the registered line variable name name to the associative buffer, input lines 101 and 103 are named 1.
The write/4 pulse signal WEi is activated and written to the cell. At the same time, the write signal WE1 is sent to the first cell of the EID through the JD t-human force lines 201 and 203, which is the environmental position information.
Similarly, the variable value is sent from the input line 301 to the first cell of Guari, - by the write signal wz1.
In order to perform the second function of activating and writing,
Associative printer, 7A company, the given variable name matches the variable name stored in the internal memory lO in advance.Circuit 4
Detects whether there is a match with 0, and outputs 1 if there is a match.
Any one of the 11 i401o is activated,
The selection circuit 6° is controlled to output the contents of the corresponding cell 30, that is, the corresponding variable value, to the output line 601. That is, the memory 30 has a function that allows variable values to be read by associative search using a variable name, and since the memory 30 that stores variable values can also be written to, the value corresponding to the variable name can be read out. , can be written. This is necessary when you refer to a variable value and change it.

第3及び第4の機能である、変数名まえは環境アイデン
ティファイブをキーとして、連想メモリバッファから同
一名の項目の有効表示ビットvをリセットする機能を実
現するため、本実施例には、選択回路70、有効表示ビ
ット格納セル群8oおよび選択回路90が含まれる。
In order to realize the third and fourth functions of resetting the valid display bit v of the item with the same name from the associative memory buffer using the variable name and environment identity five as keys, this embodiment includes the following: A selection circuit 70, a valid display bit storage cell group 8o, and a selection circuit 90 are included.

有効表示ピットvを格納するセル群のうち、Viミセル
前記変数名1、EIDi、変数値1を書き込むときの前
記書込み信号wg1によりてセットする。
Among the cells storing the valid display pit v, the Vi micelle is set by the write signal wg1 when writing the variable name 1, EIDi, and variable value 1.

変数名をキーとする場合は、選択回路70で一致回路4
01の出力を選択し、リセット信号1001が論理lの
とき、にの回路10Gによりて出力1002のうち一致
回路40で内部変数名1番目と入力された変数名1番目
の一致がとれたとき、対応する有効表示ピットv1がリ
セットされる。
When using a variable name as a key, select circuit 70 selects matching circuit 4.
When the output 01 is selected and the reset signal 1001 is logic 1, when the matching circuit 40 matches the first internal variable name and the first input variable name among the outputs 1002 by the circuit 10G, The corresponding valid display pit v1 is reset.

有効表示ビットセル群の出力社選択回路90に入力され
、一致回路40の出力401の制御をうけて選択される
ので、出力901には変数名と格納変数名が一致がとれ
ている対応する有効表示ビット選択回路90の出力90
1に出力される。
The output of the valid display bit cell group is input to the output company selection circuit 90 and is selected under the control of the output 401 of the matching circuit 40, so the output 901 contains the corresponding valid display whose variable name and stored variable name match. Output 90 of bit selection circuit 90
1 is output.

また、機能(4)を実現する九めに、選択回路70で、
一致回路50の出力501を選択すれば入力のKIDと
格納されているKIDの一致がとれたとき、対応する有
効表示ビットがリセットされ、外部変数名と内部変数名
が一致がとれたとき、選択回路90で選択されて、出力
901に出力される。
In addition, in the ninth step to realize function (4), the selection circuit 70
If the output 501 of the matching circuit 50 is selected, when the input KID and the stored KID match, the corresponding valid display bit is reset, and when the external variable name and internal variable name match, the selection is made. It is selected by the circuit 90 and output to the output 901.

以上説明し喪ように、本発明によれば、デーグ・臂イン
ド方式に従って実行していく関数型情報処理装置におい
て、特に大域変数の値を検索するアクセスが前記連想パ
、ファを使うことによって高速に行なうことができる。
As explained above, according to the present invention, in a functional information processing device that executes execution according to the Daeg-Arindo method, access to search for the value of a global variable can be made faster by using the above-mentioned associative parameters. can be done.

【図面の簡単な説明】[Brief explanation of the drawing]

第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図
Figures 1 (a) l (b) and (e) are diagrams for explaining the binary list, Figure 2 is a diagram for explaining functional information processing, and Figure 3 (a) and (b). ) a de fs
Diagram explaining Indian law, Figure 4 (a) e (b) e
(@) is a diagram explaining the D7'z4inP method on the starboard, and Figures 5(a) and (b) are diagrams explaining the environment list. FIG. 7 (&) e (b) is a diagram for explaining other functions of the buffer memory of the present invention; FIG. 8 is a diagram for explaining still another function of the buffer memory of the present invention; The figure is a block diagram of one embodiment of the present invention. 10--Variable name memory, 20--Position information (ICID
) Memory, 30.-Variable value storage, 40.50.. Matching circuit, 60.70.90.. Selection circuit. Blue figure 4 (a) (b) (c) Actual figure 5 (a) Actual figure 5 (b,) Actual figure 6 Blue 71! II (a) Blue Blue Figure 7 (J)) E Figure 8

Claims (1)

【特許請求の範囲】 1、 グロダラムの構造及び実行形態が仮引数としての
変数名と実引数としての変数値の対として環境リストで
あるFlrst −In −La5t −Out型のス
タックメモリへ格納することによって呼ぶべき関数の仮
引数変数へ実引数を束縛し、呼ばれた関数は変数の値を
参照する場合、前記環境リストの最近の束縛値を使って
処理を行い、その関数の値が得られれば関数の仮引数変
数を前記環境リストから削除して前記関数値をリターン
するという一連の処理を繰返す関数型情報処理装置にお
いて、変数名、変数値およびその変数が束縛されている
前記環境リスト上の位置情報を対として各ワードが構成
され、グロダラム実行中に変数を参照する場合には、変
数名をキーとして連想検索し、格納されている変数と一
致がとれれば対応する変数値を読出して使い、不一致で
あれば前記環境リストから変数名を検索し最近に見つか
る変数値を使う処理装置の動作にともなってその変数名
と変数値を前記環境リスト上の位置情報も加えて新しく
書込み、それとともに引数変数名と名前が一致するワー
ドを削除でき、変数値を変更する場合には前記環境リス
ト上の最近値を変更する情報処理装置の動作と共に、そ
の変数が内部に存在すればその変数値のみを変更し、関
数がその呼び側に復帰する場合には、その引数基と束縛
値の対を前記環境リストからはずす処理装置の動作にと
もなって、その環境リスト上の位置情報をキーとして対
応した −ワードを削除する連想バッファメモリを設置
した関数型情報処理装置。 λ 変数値を変更する場合において、連想バッファメモ
リ上にその変数が存在する場合には、連想/苛ツ7アメ
モリ中の変数値のみを変更し環境リストの該変数値はそ
のtまにしておき、連想/9ツフアメモリがオーバーロ
ーした時に、そのリグレースされる変数の値t−環境リ
ストに戻すようにした特許請求の範囲集1項記載の関数
型情報処理装置・
[Scope of Claims] 1. The structure and execution form of Grodarum is to store a variable name as a formal argument and a variable value as an actual argument in a stack memory of type Flrst-In-La5t-Out, which is an environment list. When an actual argument is bound to a formal parameter variable of a function to be called by , and the called function refers to the value of the variable, the most recent bound value in the environment list is used to process and the value of the function is obtained. In a functional information processing device that repeats a series of processes such as deleting a formal parameter variable of a function from the environment list and returning the function value, the variable name, the variable value, and the environment list to which the variable is bound are deleted. Each word is constructed as a pair of position information, and when referring to a variable during GLODARAM execution, an associative search is performed using the variable name as a key, and if a match is found with the stored variable, the corresponding variable value is read out. If there is a mismatch, the variable name is searched from the environment list, and the most recently found variable value is used. Along with the operation of the processing device, the variable name and variable value are newly written along with the position information on the environment list. In addition, the word whose name matches the argument variable name can be deleted, and when changing the variable value, the information processing device operates to change the most recent value on the environment list, and if the variable exists inside, the variable value is changed. When the function returns to its caller after only changing the parameter, the processing device removes the pair of argument group and binding value from the environment list, and the position information on the environment list is used as a key. - A functional information processing device equipped with an associative buffer memory that deletes words. λ When changing a variable value, if the variable exists in the associative buffer memory, change only the variable value in the associative buffer memory and leave the variable value in the environment list by that time. , the functional information processing device according to claim 1, wherein when the associative/9tuhua memory overflows, the value of the variable to be regraced is returned to the t-environment list.
JP56102900A 1981-06-30 1981-06-30 Function type information processor Granted JPS584452A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP56102900A JPS584452A (en) 1981-06-30 1981-06-30 Function type information processor
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 (en) 1981-06-30 1981-06-30 Function type information processor

Publications (2)

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

Family

ID=14339729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56102900A Granted JPS584452A (en) 1981-06-30 1981-06-30 Function type information processor

Country Status (1)

Country Link
JP (1) JPS584452A (en)

Also Published As

Publication number Publication date
JPH0126092B2 (en) 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
CN109614325A (en) A kind of method and device, electronic equipment and the storage medium of determining control property
CN112102840A (en) Semantic recognition method, device, terminal and storage medium
US8515976B2 (en) Bit string data sorting apparatus, sorting method, and program
CN101398830A (en) Thesaurus fuzzy enquiry method and thesaurus fuzzy enquiry system
Shen Functional transformations in AI discovery systems
CN103918027B (en) Effective gradual modification of the optimum Finite State Transformer (FST) in voice application
US5502832A (en) Associative memory architecture
US9201982B2 (en) Priority search trees
JPS584452A (en) Function type information processor
US3596258A (en) Expanded search method and system in trained processors
CN114579605A (en) Table question-answer data processing method, electronic equipment and computer storage medium
EP3113038B1 (en) A data handling method
CN112651197A (en) Circuit division preprocessing method and gate-level circuit parallel simulation method
JP2000187607A (en) Name converting device and recording medium
CN111381827A (en) Method and device for generating syntax tree of code file and electronic equipment
US8666925B1 (en) Method for parallel computation of a finite state machine
De et al. A new tuple space structure for tuple space based mobile middleware platforms
CN109947775B (en) Data processing method and device, electronic equipment and computer readable medium
EP3063672B1 (en) Text sample entry group formulation
Ravikumar et al. On the existence of lookahead delegators for nfa
CN115563353A (en) Character string processing method, device, equipment and medium
JPS6367691B2 (en)