APLNEWS 2006年2月号

 

1.ネームスペースの効用:

 

企業の中でAPLを複数のユーザーが使用している場合、一人ひとりが自分の作業環境(=ワークスペース)に共通のツールや、業務プログラムをコピーして作業しているのが常であります。これらのプログラムは時として、その場の都合により修正され、作業の終了時に、作業結果とともに個人のライブラリーにストアーされ、共通のツールとしての意義が失われてしまうことがあります。もしこれを厳重に管理するとしたら、意外と手間がかかりますし、施すべき正式の修正も反映させることが困難になります。このことはAPLの宿命であるとさえ思われ、APLの重大な弱点として放置されてきました。

 

2002年にIBMが発表した、APL2 V2(=バージョン2)から、この問題はネームスペースと呼ぶ新しい設計思想により、非常に合理的に解決できるようになりました。ネームスペースはこのような共通プログラム資源を効率よく管理するばかりでなく、ワークスペースの必要資源を大幅に削減させることを可能にしました。

 

1960年代にAPLが最初に設計されたとき(APL360など)には、処理に必要なプログラムおよびデータ資源はすべてワークスペースという空間に存在していなければなりませんでした。したがって1970年代に出現したAPLSVとかVSAPLなどで、APL補助プロセサーの設計が導入され、ファイル入出力機能が付与され、ワークスペース外のデータ資源を利用できるようになったにもかかわらず、情報処理の専門家も含めて、この設計上の変革をなかなか正確に認識されることがありませんでした。

 

APL2においては外部の機能を利用する仕組みとして、さらにアソシエイト(=関連付け)・プロセサーという新しい設計が追加されました。現在(APL2 V2.7)このプロセサーには10番(=P10)、11番(=P11)、12番(=P12),14番(=P14)があります。P10はREXインターフェース、P11は外部関数インターフェース、P12はデータ・ファイルをAPL配列とみなす機能、P14はJAVAインターフェースになっています。

 

この中で最も着目するべきはP11で、現在約50個のシステムで定義した外部関数が存在します。この中にはファイル入出力、Microsoft Office、C+,VBA+、DB2,ODBCなどとのインターフェースを含め重要な機能が満載です。外部関数はワークスペース-の外に存在し、コピーしないで、あたかも存在するように機能する関数です。

 

ネームスペースとはAPLの関数や変数で構成されたファイルで、P11で管理されます。ネームスペースに含まれるこれらのオブジェクトを指定したワークスペースの起動時には、APLインタープリターがそれらの名前と実体とを自動的に関連付けします。これらはワークスペースの外で実行されますから、ワークスペースの資源を使いませんし、ワークスペースの資源の制約に拘束されません。さらに複数のユーザーが同時に使用でき、ワークスペース外で保守しますから、共通資源としての管理も容易に行うことができます。

 

ネームスペースはシステム外部関数(CNS=Create Namespace)を使用して、

 

    CNS ‘ライブラリー番号 ワークスペース名’

 

というAPL式を実行することで作成することができます。

 

ネームスペースに含めるべきAPL関数の作成に当たり特別なことをする必要がありませんが、ツール関数の実行にあたり、ネームスペースとワークスペース、またネームスペースと他のネームスペース間でバウンダリー(=ネーム・スコープという)を超えた処理のやり取りには(EXP=Execute Previous Namescope)や(QNS=Query Namescope)などのシステム外部関数を使用しなければならないこともあります。しかしこれらもAPLの知識以外に特別な知識や技能を必要としませんから、集団でAPLを使用する場所では容易に導入することができます。

 

(APL Installations having multiple users normally copy common utility programs into respective workspaces. It will often end in saving them in individual libraries, causing variations of standard programs. It has added to the difficulty of managing commonly used APL programs. APL2 V2 announced by IBM in 2002 emerged with the new concept of namespaces, which made it possible to manage them and even to help conserve the resource requirements of the individual users. Original APL design in 1960’s required program and data to exist in a workspace. APLSV and VSAPL announced in 1970’s added APL auxiliary processors, which allowed the use of files (ie. data outside the workspace). Associate processors (P10,P11,P12,P14) in APL2 allowed the use of APL functions outside workspaces as external functions for the first time. P11 made APL-written functions to be defined as namespaces and made it possible to create common APL function and data libraries outside APL workspaces to be maintained independently of users. This way, highly sophisticated library designs became realizable using such external functions and a system function as EXP,  QNS, NA)

 

 

2.“APL学習システム”の書き換えについてお知らせします。

 

ネームスペースの実用性を実証するために先月号から、画面設計プログラム、日本語関数エディター、その他のツール関数やデモンストレーション・プログラムにネームスペースの設計を採用しました。今月はさらにその設計を見直し、ほぼ最終的な修正を加え、再度、全面的な書き換えを実施しました。この仕組みの面白いところは学習システムがAPLパッケージ(=DLL)で、ワークスペースではないことです。すなわち製品化して流通させ、無償配布可能なAPL2 Run−timeモジュールの元で、Windows XPの環境であればどこでも実行することのできるAPLで開発された適用業務パッケージからネームスペースが利用できることです。

 

これは新しい発見で、パッケージの中核をひとつ提供しておけば、ネームスペース・ファイルを追加し、保守するだけで無限大に対象を広げていける設計につながるということです。ネームスペースの保守は技術的にも高度なものではありませんから、一般の人たちでも、アップリケーションの専門的知識があれば、これら一連の技術を応用して、商業ベースでこれに正面から取り組むことも可能です。

 

(“APL Learning Assistance” package, which is distributed free from our Web-site together with IBM’s APL2 runtime module now employs the design of namespaces for utility and demonstration functions. It is a new discovery that namespaces can be used not only from workspaces and other namespaces but also from packaged applications.)

 

 

3.APL講習会の計画について皆様のご意見を求めます:

 

私こと、APLをほぼ生活の中心として40年近くになります。最近インターネット上である外国のAPLユーザーの古い記事にAPLに関して`terse and denseと記述していました。まことに当を得た表現であると感心しました。しかしこれはAPL言語に関してであり、とかくAPLに関する記述はその言語のみの一部の特性のことが多く、実用性をもたらしている周辺機能に関する記述は非常に少ないために、時には極端に過大評価されたり、荒唐無稽な記述が多く、実際のAPLユーザーの実感とはかけ離れたものが多いのが現状です。

 

APLをその実用性から見ると、ごく平易な言語で誰でもが日常のプログラム言語として使用しうる万能なツールのひとつであると考えます。もし、この記事の読者でさまざまな動機から、このツールをより理解されたい方のために、長野県茅野市蓼科にある弊社のAPL研修センターでの合宿に参加されたい方がいらしたら、内容、時期、費用などについて、ご希望、ご意見などを(`kyosuke.saigusa@nifty.com’)までメールしてください。今年は5月から10月ごろにかけてさまざまな形で、2日間から4日間ぐらいの単位で、APLの集中講習会を開催したいと思います。一度に参加していただける人数は最大10名です。

 

(I found someone describing APL language as ‘terse and dense’. In my 40 years of experience with this language, this is a nice description of the language, but this sort of expert comments often mislead the prospective users. APL’s value comes more from its peripheral functions rather than the language itself. This summer I plan to open APL intensive training camps lasting 2 to 4 days each for the maximum of 10 attendees each time May thru October in our APL training center at Tateshina highland in Nagano prefecture 2 hours from Tokyo by train. I would like to call for comments and requirements regarding this plan to my mail box kyosuke.saigusa@nifty.com.)

 

4. APL インターネットWEBサイトの設計について

 

APLでのWEBサーバー・プログラムの作成は特別なソフトを購入したり、技術者をそろえたりしなくても、費用をかけずに、思いどうりの処理機能を組み、悪意のあるアクセスの排除や統計資料の記録など容易にプログラムが可能です。また最初から完全なものにしなくても、必要に応じて随時書き換えができる点も、他の方法では到底望めない優れた点です。

 

弊社のサイトは最近必要から全面的に組み替えました。したがってその作業の期間(当年1月初旬)数多くのトラブルが発生し、アクセスできない時間が多く皆様にはご迷惑をおかけしたと思います。これらの問題は現在すべて解消しています。もちろんお金と時間をかけていませんし、専従の担当者も当てられませんから、今後もご迷惑をおかけすることがあると思いますが、よろしくお願いします。

 

現在は東京電力のテプコひかり1回線と、NTTのADSL2回線を使用しています。前者はダイナミックDSNでAPLCONS.COMのドメイン名を当てています。後者の1回線は固定アドレスですが、ドメイン名を取得中です。サーバーはPCが3台で、2台は各ドメインに当てています。3代目はインターネットを通じてある会社のイントラネットの端末になっています。それぞれ別のルーターに接続されていますが、3台ともゲートウエイのない接続で弊社のイントラネットの端末としても機能をしています。

 

1号機は弊社のWEB・サーバーです。2号機は3号機とAPLのプログラムを経由してサーバークライアントの関係にあり、客先や社員のAPLプログラムまたはブラウザーからインターネットを経由して到達するリクエストを処理し、3号機を経由して、遠隔地の客先のプログラムやデータの保守、問い合わせなどに対応しています。したがって一時点で3台のPCと最大3個のAPLプログラムがTCP/IPのプロトコールにより協調作業を遂行する仕組みになっています。通信のためのAPLプログラムはそれぞれ100行以内の短いもので、理屈がわかれば保守もいたって簡単です。

 

運用上経験したトラブルはウイルス・プロテクションの自動保守に起因するトラブルのみで、非常に安定しています。今後はこの設計をより簡略な形で、また複雑な形で、広めていけたらと思います。ハードウエアと通信の性能が以前より格段に向上していますから、どのように小さい規模の企業でも、少ない費用で、業務をサポートするWEBサイトを自主運営することが可能になります。

 

(On the design of our APL Internet Web site: Writing web server programs in APL offers the user many advantages. Within a very small budget and time frame, and only with the knowledge of APL, one can complete a desired processing logic, and protection from unwanted accesses, access data gathering etc. One can also continually improve the functions as required. Recently (1st half of this month) ,we had to redesign our web-site and  had to cause a lot of trouble to those who wanted to access this site. Now we have cleared this trouble. Our site now consists of 3 internet connections, with one PC and a gateway router for each line. One (aplcons.com) is open to the public via optical fiber, and the other two are more or less closed to our enterprise customer use, although they can backup each other at trouble time. Customers and our remote employees can access the 2nd PC, via commercial internet browser or APL programs. This is transmitted to the 3rd PC which is connected to our customer’s intranet network via internet. On the other side of the line, there are many OS2 and Windows PC’s running APL programs capable of communicating with us using TCP/IP. Each APL program including server is so simple and plain, and smaller than 100 lines of APL statements without sub-routines. We are thinking of spreading this scheme especially amongst small enterprises with restricted budgets and resources.)  

 

 .