JPH04255027A - コード自動生成装置 - Google Patents

コード自動生成装置

Info

Publication number
JPH04255027A
JPH04255027A JP962291A JP962291A JPH04255027A JP H04255027 A JPH04255027 A JP H04255027A JP 962291 A JP962291 A JP 962291A JP 962291 A JP962291 A JP 962291A JP H04255027 A JPH04255027 A JP H04255027A
Authority
JP
Japan
Prior art keywords
data
function
processing
file
library
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.)
Withdrawn
Application number
JP962291A
Other languages
English (en)
Inventor
Motoko Kawachi
素子 河内
Naoto Ikeda
直人 池田
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.)
Mitsubishi Heavy Industries Ltd
Original Assignee
Mitsubishi Heavy Industries 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 Mitsubishi Heavy Industries Ltd filed Critical Mitsubishi Heavy Industries Ltd
Priority to JP962291A priority Critical patent/JPH04255027A/ja
Publication of JPH04255027A publication Critical patent/JPH04255027A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラムのコードを自
動生成するコード自動生成装置に関する。
【0002】
【従来の技術】プログラムのコードを自動生成する方式
として、従来から、 (a)演繹推論によるもの (b)機能推論によるもの (c)知識処理手法によるもの (d)プログラム変換によるもの (e)部品結合によるもの などが知られている。
【0003】以上の(a)〜(e)の方式のうち、(a
)〜(c)までの3つの方式は、未だ実用化までに解決
すべき問題が多い。また(d)の方式は、より記述の容
易なプログラミング言語によるコードを、設定された規
則に従って原始プログラミング言語によるコードに変換
する装置であり、実用化しているものもある。しかし一
般には、(e)の方式のように、部品化して提供される
ソフトウェアモジュールをつなぎ合わせる形式を採って
いる装置が多い。
【0004】
【発明が解決しようとする課題】入力されデータから一
対一に対応させてライブラリ関数をコールする形のコー
ドを自動生成する装置は、従来の技術で比較的容易に作
成できる。このように、入力したデータをそのまま順次
関数コールの形に落としたコードでは、同一処理を行う
関数を繰り返しコールすることがある。しかし、関数を
コールする際にデータ送信に時間を要する場合などには
、同一処理を行う関数を繰り返しコールしたのでは多く
の時間がかかるため、コードの実行効率を上げることが
できない。また、そのようなコードを、コンパイル、リ
ンクして得られる実行ファイルは、サイズが大きくなり
がちである、といった問題があった。
【0005】本発明は上記事情に鑑みてなされたもので
その目的は、関数コールの回数を最小化でき、もって出
力コードの実行効率の向上と、コンパイル、リンク後の
実行ファイルのサイズの縮小化が図れるコード自動生成
装置を提供することにある。
【0006】
【課題を解決するための手段】本発明は、複数個のデー
タを受け取って固有の処理を一括して行うためのライブ
ラリ関数を提供する第1の手段と、データを読み込む第
2の手段と、読み込まれたデータをバッファリングする
もので、同一関数によって処理可能な複数のデータを、
処理用データとして一括して関数に送るような形にまと
める第3の手段と、まとめられたデータおよび第1の手
段によって提供されるライブラリ関数に基づきコード化
したファイルを生成する第4の手段とを備えたことを特
徴とするものである。
【0007】
【作用】上記の構成において、第1の手段は、複数のデ
ータを複数回の関数コールで送信し処理するところを、
一度の関数コールでデータを送信することにより効率を
上げるための準備を司るもので、複数個のデータを受け
取って固有の処理を一括して行うためのライブラリ関数
を保持提供する。
【0008】第2の手段は、コールする関数と一対一に
対応させるよう設定したデータを、コード生成のための
情報として獲得し、第3の手段は、第2の手段によって
獲得(入力)されたデータをバッファリングする。そし
て第3の手段は、獲得データのうち、同一関数によって
処理可能な複数のデータを処理用データとして一括して
関数に送るような形にまとめる。
【0009】第4の手段は、第3の手段によってまとめ
られけたデータおよび第1の手段によって提供されるラ
イブラリ関数をもとに、入力データの意図をコード化し
たファイルを出力する。
【0010】
【実施例】図1は本発明の一実施例に係るコード自動生
成装置の構成を示すブロック図である。図1において、
1は複数個のデータを受け取って固有の処理を一括して
行うためのライブラリ関数を保持提供するライブラリ情
報格納部、2は入力データ5の読み取りを行うデータ読
み取り部である。3はデータ読み取り部2によって読み
取られたデータをバッファリングするバッファリング部
、4はファイル出力部である。ファイル出力部4は、4
はバッファリング部3にバッファリングされたデータお
よびライブラリ情報格納部1によって提供される関数に
基づきコード化したファイルを出力ファイル6として生
成出力するものである。
【0011】次に、図1の構成の動作を説明する。まず
、ライブラリ情報格納部1には、サーバ、クライアント
間の通信に要する時間を抑えるため、次のように、デー
タx1を受け取り処理Aを行う関数 make  a((int)x1); の他に、n個(nは2以上の整数)のデータをまとめて
受け取り、Aの処理を一括して行う関数    mak
e  as((int*)y1,(int)n);  
……(1)が格納されている。ここで、y1はn個のデ
ータからなる配列である。
【0012】ライブラリ情報格納部1には更に、B,C
の処理についても、上記したAの処理と同様に単一デー
タを処理する関数と複数のデータを一括して処理する関
数とが格納されている。これらの関数は次のとおりであ
る。
【0013】     make  b((int)x1);    
make  bs((int*)y1,(int)n)
;  ……(2)          make  c
((int)x1);               
                         
make  cs((int*)y1,(int)n)
;  ……(3)
【0014】さて、図1のコード自動
生成装置に対し入力データ5が与えられると、データ読
み取り部2はその入力データ5を読み取る。この入力デ
ータ5は、処理関数名、同関数名で示される処理関数へ
与えられるデータおよびデータ個数からなる。
【0015】ここでは、データ読み取り部2により、デ
ータとして次の5つ が読み取られたものとする。即ち、処理Aの処理関数に
与えられる2つのデータ10,60と、処理Bの処理関
数に与えられる2つのデータ25,30と、処理Cの処
理関数に与えられる1つのデータ20との合計5つのデ
ータが、データ読み取り部2により得られたものとする
【0016】このとき、ライブラリ情報格納部1に上記
(1)〜(3)に示す関数が用意されていないならば、
即ち従来であれば、データ読み取り部2により得られた
上記(4)に示す個々のデータに一対一に対応して、次
の5つのコードからなるコード群(5)が生成される。
【0017】
【0018】これに対し、図1に示す本実施例のコード
自動生成装置では、生成コード数(コールする関数の総
数)を従来に比べて減少することができるものである。 これについて、以下に説明する。
【0019】まず、データ読み取り部2によって読み取
られたデータはバッファリング部3に与えられる。バッ
ファリング部3は、データ読み取り部2から与えられる
データを、データ入力が終了するまで保持する。そして
データ入力が終了すると、バッファリング部3は保持し
ておいたデータを処理関数名単位にまとめ、処理関数名
単位に、そのデータおよびデータ個数をファイル出力部
4へ出力する。ここでは、まず処理Aの処理関数に与え
られる2つのデータ10,60およびデータ個数2がフ
ァイル出力部4に出力される。続いて処理Bの処理関数
に与えられる2つのデータ25,30およびデータ個数
2、更に処理Cの処理関数に与えられる1つのデータ2
0およびデータ個数1が、ファイル出力部4にそれぞれ
出力される。
【0020】ファイル出力部4は、バッファリング部3
から出力された処理関数名単位のデータおよびデータ個
数を受け取ると、その受け取ったデータおよびライブラ
リ情報格納部1に格納されている該当処理関数名の関数
に基づいて、次のようにコード(6),(7)を含むコ
ード群(8)を出力ファイル(コード化されたファイル
)6として生成出力する。
【0021】int  a1[2]; int  a1[2]; a1[0]=10; a1[1]=60; make  as(a1,2);  ……(6)b1[
0]=25; b1[1]=30; make  bs(b1,2);  ……(7)mak
e  c(20);………(8)
【0022】ここで、
上記(6)で示されるコードは、処理Aの処理関数(ラ
イブラリ関数A)を1回コールしてデータ10と60に
ついての2回の処理を行わしめるためのものである。同
様に、上記(7)で示されるコードは、処理Bの処理関
数(ライブラリ関数B)を1回コールしてデータ25と
30についての2回の処理を行わしめるためのものであ
る。
【0023】このように、上記(4)で示されるデータ
が与えられた場合、従来であれば、(5)のコード群か
ら明らかなように、コールする関数の総数が5であり、
関数Aを2回、関数Bを2回、そして関数Cを1回、そ
れぞれコールすることになる。これに対して本実施例で
は、上記(8)のコード群から明らかなように、コール
する関数の総数が5から3に減少し、関数A,B,Cと
もそれぞれ1回しかコールしないで済む。この結果、サ
ーバ、クライアント間通信の回数を減らすことができる
【0024】
【発明の効果】以上詳述したように本発明によれば、コ
ードの自動生成において、ライブラリ関数をコールする
形のファイルを生成する際に、同一関数によって処理可
能な複数のデータを処理用データとして一括して関数に
送るような形にまとめることにより、関数コールの回数
を減らすことができるようになり、これにより出力コー
ドの実行効率の向上と、コンパイル、リンク後の実行フ
ァイルのサイズの縮小化を図ることができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係るコード自動生成装置の
構成を示すブロック図。
【符号の説明】
1…ライブラリ情報格納部、2…データ読み取り部、3
…バッファリング部、4…ファイル出力部、5…入力デ
ータ、6…出力ファイル。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  複数個のデータを受け取って固有の処
    理を一括して行うためのライブラリ関数を提供する第1
    の手段と、データを読み込む第2の手段と、この第2の
    手段によって読み込まれたデータをバッファリングする
    もので、同一関数によって処理可能な複数のデータを処
    理用データとして一括して関数に送るような形にまとめ
    る第3の手段と、この第3の手段によってまとめられた
    データおよび上記第1の手段によって提供されるライブ
    ラリ関数に基づきコード化したファイルを生成する第4
    の手段と、  を具備することを特徴とするコード自動
    生成装置。
JP962291A 1991-01-30 1991-01-30 コード自動生成装置 Withdrawn JPH04255027A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP962291A JPH04255027A (ja) 1991-01-30 1991-01-30 コード自動生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP962291A JPH04255027A (ja) 1991-01-30 1991-01-30 コード自動生成装置

Publications (1)

Publication Number Publication Date
JPH04255027A true JPH04255027A (ja) 1992-09-10

Family

ID=11725370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP962291A Withdrawn JPH04255027A (ja) 1991-01-30 1991-01-30 コード自動生成装置

Country Status (1)

Country Link
JP (1) JPH04255027A (ja)

Similar Documents

Publication Publication Date Title
JPH04255027A (ja) コード自動生成装置
JPH01259424A (ja) ソフトウエア自動生成装置
US5469550A (en) Reversible computer apparatus and methods of constructing and utilizing same
CN115422126B (zh) 一种证照ofd版式文件快速转图片的方法、***及装置
JPS62262164A (ja) 仮想端末制御装置
JPH03240837A (ja) デバッグ情報生成装置
KR100323372B1 (ko) 이엠 코드에 대한 실행시간 스택의 타입 분석 방법
WO2020259020A1 (zh) 指令块的处理方法及装置、存储介质、电子装置
JPS63201728A (ja) 推論方式
JPS59218574A (ja) コマンド処理方式
JP3279706B2 (ja) オンライン・コンパイル方式
Townsend et al. Hardware in Haskell: Implementing memories in a stream-based world
JPH0481935A (ja) プログラム間情報蓄積交換方式
CN114924743A (zh) 一种服务编排处理方法及装置
JPS626303A (ja) 連結機構動作記述方式
JPH0646099A (ja) プロトコル符号化/復号化装置
CN117519779A (zh) 异构rpa产品的流程调度方法及装置
JP3904958B2 (ja) 人工天体の管制のためのコマンド計画を生成する制御をコンピュータに行わせるコンピュータ・プログラム
JPS6346537A (ja) 検索処理装置における検索条件判定方法
JPH0390935A (ja) エキスパートシステム構築ツール
JPH0778100A (ja) データ変換処理装置
JPH07175630A (ja) データ構造変換装置
JPH05165914A (ja) 並列論理シミュレータ
JPH06236264A (ja) ロードモジュール生成方式
JPH02247733A (ja) バイナリコード変換の簡略化方式

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19980514