プログラミング

 ソフトウェア

著者と著作権者がエンドユーザに自由に利用できるようにした豊富なソフトウェアがあります。 努力を重複するのではなく、私は可能な限り標準ツールを使用しようとします。 場合によっては、法案にかなり適合するものはありません。 あなたが仕事をすばやく効率的に行うためのより一般的なツールを手に入れることができない場合には、あなたが役に立つかもしれないいくつかの奇妙なツールがあります。


カレンダー変換

NASAと商業衛星産業の多くは、シーケンシングの開始、追跡施設のスケジューリング、およびその他のミッションプランニング活動のための月日の日付ではなく、年中の日の日付で動作します。 定期的に計画に直接関わる場合、変換テーブルを含む1枚の紙である「永久カレンダー」を持ち歩くのが通例です。 一方の側には1〜365の共通年表があり、もう一方の側には1〜366のうるう年表があります。スプレッドシートはこの種の変換を容易に処理します。

HP 32SIIの年末年始

「永久カレンダー」やスプレッドシートプログラムを使わずに自分自身を見つけることができますが、私のHewlett-Packard 32SIIプログラマブル電卓では、変換を実行する電卓のプログラムを書いています。 このプログラムは、Jean Meeusの本天文の アルゴリズムの式を実装しています。 MeeusはフォワードコンバージョンアルゴリズムをUS Naval Observatoryに帰属させ、逆変換をオランダの民間特派員に帰属させる。

Perlのユリウス日

長期的な計画とデータ分析に使用されるデスクトップマシンでは、天文学で一般的なユリウス日のシステムがより便利になります。 このPerlスクリプトは〜/ binにあり、3つの異なるアルゴリズムを使用して、グレゴリオ暦の日付とユリウス日の間を変換します。 1つのアルゴリズムでは、オプションでコマンドラインで指定した場合、分数日、つまり時間、分、秒を変換することができます。

PCLNFSS – PCLフォントのLaTeX 2eスタイルファイル

任意のPCL 5e以降のハイエンドプリンタのROMに標準の45個のスケーラブルフォントを使用するスタイルファイルのセット。 このパッケージは、LaTeXが生成するDVIファイルからPCLを生成するために、 dviljkまたは同様のDVIからPCLドライバで使用する必要があります。

リストを行うには:

  • より良いユーザー文書。
  • T1エンコーディング用の* .fdファイルを生成します。 現在、 OT1エンコーディングのみがサポートされています。
  • * .styパッケージの名前付けを改善して、他の共通フォントパッケージとの名前空間の衝突を防ぎます。
  • teTeXに付属のspecial.mapファイルが十分であるか、別のpclfonts.mapファイルをPCLNFSSに含めるべきかどうかを調べてください。src /ディレクトリには、Karl Berryの仮想フォント生成プログラムの残りの部分といくつかの例の* .mapファイルがあります。
  • PSNFSSの仮想数学フォント。
  • ユーロ記号のサポート。
  • 文字メトリックとカーニングテーブルは、LaserJet 4の開発者のCD-ROMに含まれているタグ付きフォントメトリック(TFM)ファイルの値に基づいています。 注:これらはTeXフォントメトリックファイルと同じファイルではなく、TFM拡張子も使用します。より新しいPCL製品のTrueType ROMフォントの更新されたメトリクスとカーニングテーブルは、どこかから入手可能でなければなりません。 (驚くべきことに、カーニングテーブルは、プリンタに付属のユーザーCD-ROMのTrueTypeファイルには含まれていません。カーニングテーブルはバイナリドライバのどこかにあります)これらの新しいメトリックはパッケージに組み込まれます。

Xcmsのリソース

デスクトップ上で正確な色再現が必要な人はほとんどいません。ほとんどの場合、較正されていないRGBモードまたは仮定較正sRGBモードでディスプレイを操作します。 X11R5以降、XウィンドウシステムにはディスプレイカラーマネージメントAPIが組み込まれていますが、ドキュメントはXディストリビューション全体に散在しており、XFree86ディストリビューションにはほとんど含まれていません。適切な文書化がなければ、ソフトウェアの使用は非常に困難です。 幸いにも、多数の文書アーカイブが利用可能です。 ここには、カジュアルなXcmsプログラマーのためのコレクションがあります。



 

レトロコンピューティング

場合によっては、何らかの理由で時代遅れの機器で作業することが必要であるか、または楽しくなることがあります。 教会の推測が真実であるように見えるので、私たちは新しい機械を手に入れたときに過去の労働を完全に捨てる必要はありません。


高等研究所40ビットアーキテクチャ

1945年、ペンシルバニア大学のムーア電気工学学校のエッカートとマウリーと共同でフォン・ノイマンは、EDVACに関する報告書の第一草稿を書いた。 このドキュメントでは、32ビットのビットシリアルアーキテクチャの論理構造について説明し、ストアドプログラムの電子コンピュータの概念を定義しました。 1年後、1946年に、フォーク・ノイマンのコンピュータ・エキストに参加するための高等研究所に最近移籍したBurksとGoldstineは、第3著者としてのフォン・ノイマンによる電子計算機の論理設計の予備的議論を発表した。 このBurks、Goldstine、von Neumannのレポートでは、40ビットのビット並列非同期アーキテクチャが説明されています。 ほとんどの現代のコンピュータは、この第2の報告書に由来している。 AikenのMark IのHarvardアーキテクチャと区別するために、このデザインはPrincetonまたはIASアーキテクチャとして知られています。 フォン・ノイマンはIASのチームを組んで、レポートに記載されているマシンを構築しました。 Argonne National Laboratory(AVIDAC)、Oak Ridge National Laboratory(ORACLE)、Los Alamos National Laboratory(MANIAC)、IAS Electronic Computer Projectの進捗状況報告書が広く配布されました。イリノイ大学(ILLIAC)、アバディーンの弾道研究所(ORDVAC)、RAND社(JOHNNIAC)[JOHNNIACはカリフォルニア州マウンテンビューのコンピューター歴史博物館に展示されています。 ORDVACとILLIACはイリノイ大学に建設され、ORDVACはAberdeen Proving Groundに出荷されました。 ORACLEとAVIDACはArgonneで構築され、その後ORACLEはOak Ridgeに出荷されました。

1946年のBurks、Goldstine、von Neumannの報告書と現代建築のマニュアルの大きな違いは、機械コードや命令レイアウトがないことです。 現在、新しいアーキテクチャは既存のマシン上でシミュレートされるため、ハードウェアの実装が開始される前に、命令セットがファイナライズされ、文書化されます。 IASのElectronic Computer Projectチームは、提案されたアーキテクチャをシミュレートするマシンを持っていませんでした。 実際の命令セットは実装時に確定されました。 IASマシンは1952年に稼働しました。実装された命令セットの漠然な記述は、マシンの最初の稼働年の間にエストリンのオープンな文献に掲載されました。 1954年、Goldstine、Pomerene、Smithは、IASマシンで実装された命令セットをリストアップした電子計算機の物理的実現に関する最終進捗報告を発表した

実際の命令エンコーディングは、元のレポートの8年後にリリースされていなかったため、IAS 40ビットアーキテクチャの各インプリメンテーションは、一意かつ互換性のない命令セットを持っていました。 以下のリンクは、アーキテクチャーの特定のインプリメンテーションごとに命令セット・エンコーディングを含む文書につながります。

  • IAS
  • イリヤック
  • ジョニニャック
  • MANIAC注: Los Alamosは特定の政府機関への電子的アクセスを制限していますが、あなたの代理店が承認されたリストに掲載されている場合はURLが有効です。シカゴ大学、ペンシルベニア大学、カンザスシティのリンダホール科学技術大学図書館のコレクション)。
  • ORDVAC

40ビットIASアーキテクチャのその他のリソースには、次のものがあります。


IBM 704のディスアセンブラ

IBM 704は、ハードウェア浮動小数点演算ユニットを搭載した最初の市販の科学計算機で、1950年代に科学プログラミングの標準を設定しました。 今日では、プログラミング言語構造への影響が長引いていること、そして第2に、そのコミュニティが開発し配布しているプログラミング・ツールとユーザ・コミュニティが興味深い点がいくつかあります。

CARアセンブラとCDRアセンブラのサブルーチンは、 Lispの歴史の 有名な例です。 これらの2つのサブルーチンのリストについては、Steve Russellによるプログラムの記述とデバッグ (MIT AI LabメモAIM-6)を参照してください。 Fortranは、704の科学プログラミング言語として開発されました。固定形式のソースコード入力形式の境界の多くは、704アーキテクチャの特質によるものです。 36ビットワードマシンは、標準的な80列の行の最初の72列に対応するメモリへのプーチカードカード行からの2つのバイナリワードをロードすることしかできなかった。 704は6ビットのBCD文字エンコーディングを使用し、6文字は単語に使用されました。 マシンは文字ではなくワードでアドレス指定されていたので、ラベルと変数名を6文字に制限するのが理にかなっていました。 したがって、ラベルと継続文字は入力カードの最初の6列を構成し、変数名は6文字に制限されていました。 704の3つのインデックスレジスタと間接アドレッシングの欠如は、多次元配列を支配的なデータ構造にしました。

704は、最初のコンピュータユーザーグループSHAREをもたらしました。 カリフォルニア南部の航空宇宙産業( 現代の化身 )を形成しています。 SHAREメンバーは、サブルーチンとプログラムライブラリを交換するための共通のアセンブラSHAREアセンブリプログラムまたはSAPを開発しました。 Paul Pierceの勤勉さのおかげで、大量のSHAREソフトウェアが機械可読形式で存在します。 SHAREコードベースの最初のテープは、1955-1957年のアセンブラとライブラリのサブルーチンで構成されており、おそらく機械で読める最古のコミュニティ開発型プログラミングシステムを表しています。 IBMの商用科学アセンブラ(Fortran II Assembly ProgramまたはFAP)は、SAPの後にモデル化されました。

IBMの次世代科学計算システム、チューブ・ロジック709、トランジスタ・ロジック7030(STRETCH)、7090および7094は、704とのバイナリ互換性を維持していました.SHAREは、IBM 709(SHAREオペレーティング・システム、 SOSと略記する)[Shell、DL、et al。共有709システム。 (6件)。 Journal of the ACM 、Vol。 6、No.2、1959、pp.123-155]。 System / 360の場合、IBMは最終的にハードウェアの互換性を破り、古い科学的アプリケーション用のエミュレーション・ソリューションを利用しました。

SHAREプログラムは主にBCDソース形式で配布されていましたが、ルーチンの一部は列バイナリ形式です。 ディスアセンブラは、カラムバイナリカードイメージを表す160バイトの標準入力を人間が読める形式に変換します。 ディスアセンブラはまずカードの穴のASCII表現を出力し、続いてバイナリ逆アセンブリを出力します。

関連リンク:


Atlas – UNIXシステム用1103Aエミュレータ

AtlasはUnivac Scientific 1103Aのエミュレータです。 Atlasは、repeat( RPjnw )を含む41のCPUの基本命令をすべて実装するだけでなく、プログラム割り込み機能もシミュレートします。 エミュレータは、インタラクティブなコマンドラインプログラムとして実行され、シミュレートされたコア/ドラムメモリに格納されたバイナリ1103Aマシンコードを解釈します。 エミュレーションによって提供される機能には、マシンコードを8進形式で直接入力する方法、ブレークポイント、逆アセンブリ、および手動ステップデバッグが含まれます。 シミュレートされた入出力装置には、ペーパーテープリーダ、ペーパーテープパンチ、および電子タイプライタが含まれる。

エミュレータはC言語で記述されており、多数のUNIXシステムに移植可能である必要があります。 これには、64ビット整数( unsigned long long )とC ++スタイルのコメント( // )の2つのC99拡張機能をサポートするコンパイラが必要です。 エミュレータは現在Linux(gccまたはIA-32のIntel cc)、SunOS(SPARCのSun CCまたはgcc)、Darwin(PowerPCのgcc)で動作します。


HPシリーズ80およびIntegralパーソナルコンピュータ用の基本的なデコケナイザ

部門ファカルティの名誉会員は、Hewlett-Packard Integral Personal ComputerのBASICプログラムでいっぱいの3.5 “フロッピーディスクで1日を迎えました。1985年のIntegral PCは、オレゴン州Corvallis部門で製造されたパーソナルコンピュータの最後の製品です。 1970年代半ばから1990年代半ばまでのハンドヘルドプログラマブル電卓製品の開発で最も有名だったHP 1980年代後半のシリーズ80デスクトップワークステーションでは、もともと電卓市場用に設計されたカスタムHP 8ビットマイクロコントローラを使用し、 Integral PCは16ビットのMotorola 68000を使用し、かなり大きな512k ROMからUNIX(HP-UX 5.x)で起動しました。テクニカルベーシックIPCのパッケージは、Series 80 BASICとソース互換に設計されています。

インテグラルPCはディスクに77シリンダをフォーマットしました。 Red Hat Linuxを実行しているPCで標準のフロッピードライブを使用することができました。setfdprm(8)と次の/ etc / fdprmエントリを使用してフロッピーをディスクイメージにコピーします。

 #HPインテグラルパーソナルコンピュータ
 hpipc 1386 9 2 77 0 0x2A 0x02 0xDF 0x50

ディスクイメージの生成:

 setfdprm / dev / fd0 hpipc
 dd bs = 9kカウント= 77 if = / dev / fd0 of = disk.img

Debian Linuxを実行しているHP 9000/782(C240)PA-RISCワークステーションでコンパイルされたピーター・ジョンソンのIPCユーティリティは、ディスクイメージの形でIntegral PCの階層ファイルシステムから個々のファイルを抽出するために使用されました。 ビッグエンディアンマシンは、もともとSolarisを実行しているSPARC上で開発されたPeterのユーティリティで動作していました。

Integral PCのTechnical BASICは、1980年代のほとんどのマイクロコンピュータBASICインタプリタと同様に、ASCIIソース形式でプログラムを保存したり、インタプリタで使用される内部バイナリトークン形式で保存したりすることができます。 ディスク上の130を超えるプログラムのうち、2つだけがASCIIとしてSAVE dでした。 バイナリトークン形式の読み込み速度とコンパクトさは、アーカイブ目的では論理的な選択でした。

ディスク上の2つのプログラムは、ASCII形式とバイナリ形式の両方でアーカイブされていました。 これらの2つのプログラムと元のHP-85 BASICフォーマットの説明[NA Mills、HC Russell、KR Henscheid、 “パーソナルコンピュータのための強化されたBASIC言語、” Hewlett-Packard Journal 、Vol。 31巻、7号、1980年7月、p。 26]。 以下のデコケナイザーが書かれました。

これらのBASICインタプリタは、ソースファイルの各行に対して内部的に逆ポーランド記法(RPN)構文を使用していました。 detokenized出力は、行ごとに複数のトークンを持つ挿入表記ではなく、1行に1つのトークンを持つ冗長なRPNで表示されます。 基本インタプリタが改訂され、それぞれの新しいマシンに移植されると、オペコードが変更されたため、あるバージョンのデシケータに表示されるオペコードは、必ずしも他のバージョンに現れるとは限りません。 ディスク上の利用可能なプログラムの性質はI / O関連ではなく数学的であったため、多くのI / Oオペコードは知られていません。 detokenizersは完全ではありませんが、コードやコメントを読むことができるほどの出力を提供し、現代のプラットフォームで表記言語を埋め込むためのプログラムを移植します。

後のモデルマシン用のインタープリタの新しいリリースは、以前のモデルからトークン化されたバイナリフォーマットを読み取ることができませんでした。 HPがサポートしているコード移行方法は、ASCII SAVEGETです。


VT200シリーズ端末用ソフトフォントコンバータ

私の唯一の家庭用コンピュータ機器は、モデムに接続されたDigital Equipment CorporationのVT220互換端末(GraphOn 230)でした。 1990年代半ばに8ビット文字セットが使用されたので、ハードウェア端末はその限界を示し始めました。 このPerlプログラムは、ビットマップ配布フォーマット(BDF)の標準の6×10 X Window SystemフォントをDECの6グラフィックスに変換し、その上位ページを端末にダウンロードします。 この端末は、標準のISO Latin 8ビット文字セットのいずれかと一緒に使用できます。

No Comments

    Leave a reply