2

このレガシー コード ベース(Compaq PERL)は、約 1500 行のコードで、Windows に移植する必要があります。私はgnu PASCALを使いたいと思っていました(私はインストールして動作しています)。アセンブラ(HP 64000 8051)を VAX からWindows (KEIL 8051)に移行しました。

ソフトウェア エンジニアリングのディレクターは、すべての製品を VAX から外したいと考えています。これが問題です。gpcを使用して CYGWIN 上の VAX からPASCALをコンパイルしようとしました。1 つの PASCAL から別の PASCAL への (IO およびアルゴリズムの) 同等性を得るには、多くのことを行う必要があるようです。

私はPERL、FORTRAN、C、およびC++をかなりよく知っています(およびJAVAですが、むしろ知りたくありません)。私の質問は、1500行のコードで、PASCALコードを他のPASCALに移植する方が生産的でしょうか、それとも別の言語に移植する方が生産的でしょうか? VAX PASCAL は私の大学での最初の言語でしたが、8 年間積極的にプログラミングしていませんでした。私は、PERL、C、C++、および FORTRAN を頻繁かつ専門的に使用しています。

私が別の言語に変換するなら、PERL を選ぶと思います。

コードが行うことは、INTEL hex および TEX HEX イメージ ファイルの塗りつぶしとチェック サムを実行することです。Srec 1.4 プログラムが動作することは承知していますが、コードを DO-178B に適合させる必要があるため、これはオプションではありません (そして、私の会社はオープン ソース コードの使用に慎重です)(彼らはオープン ソース コードに問題はありません)。ソース ツール; コードのみ)。

4

5 に答える 5

2

Free Pascalに移植しようとしますが、時間制限があります。それが難しすぎる場合は、(あなたが) 最近使用した言語にフォールバックします。

新しい (移植または翻訳された) バージョンが古いバージョンと同じように動作するかどうかをテストする方法はありますか?

于 2008-12-06T23:48:33.427 に答える
0

わずか 1500 行のコードであり、Pascal には多くの長所がありましたが、I/O はその 1 つではなかったため、すべてを C に移植し、モジュールに分割し、途中でいくつかの単体テストを作成しました。新しい Pascal への移植には、さまざまな方言の互換性に大きな「未知の要因」があります。それを C に移植すると、初日の終わりまでに作業にかかる時間がわかります。一度作業を終えれば、C は私たち全員よりも長生きするため、完全に釘付けになります。そして私はジョエル・ニーリーに同意します。それを維持する別の C プログラマーを見つけるのは常に簡単です。

このプログラムは非常に小さく、ほとんどが I/O と整数操作であるため、ここでは C++ の役割は見当たりません。余分な複雑さの価値はありません。

于 2008-12-07T08:00:41.950 に答える
0

私は常に、会社が主に使用する言語でできるだけ多くのプログラムを書くようにしています。

会社で C++ を実行しているプログラマーが 6 人いて、次の採用時に必要な言語が増える場合、スクリプト言語に頼っても意味がありません (断片的に簡単なので)。

個人的には Perl が嫌いです。構文が少し暗号化されているからです。さらに、それはそれほど「企業向け」の言語ではなく、特にここではありません。Unix sysadmin コーナーの外では、それに本当に精通している人を見つけるのは困難です (*)

これは、私の現在の観点からの単なる記事であることに注意してください。これは、ほとんどの場合、私たちに慣行を強いる大規模な商用クライアントを持つ小さなショップのプログラマーの観点です. YMMV。

(*) webdevels は主にここで ASP.NET を行います。

于 2009-05-02T12:05:50.250 に答える
0

1500行のコードを任意の言語/プラットフォームに移植することは、「塗りつぶしを実行」してチェックサムを計算するだけでよいという事実を考えると、それほど難しくないと思います。個人的には C# の方が好みでした - それは私の心を落ち着かせる効果があります :) しかし、C/C++ の習熟度を考えると、C++ は世界最高のアセンブリ言語であり、要件を満たすという単純な理由から、C++ を使用することをお勧めします。完璧に。Pascal は、時代遅れの新しいプロジェクトが避けるべきものだと思います。私が間違っている場合は、お気軽に修正してください。

C でのプログラミングは雑用であり、プログラムをさらに拡張する余地を残しておくには、C++ が最適な選択肢のようです。また、C とは異なり、C++ にはそれをバックアップする非常に有能なライブラリ (STL、Boost など) があることも忘れないでください。

于 2008-12-07T00:57:15.940 に答える
0

私は最初に長期的な保守性を考慮します(あなた以外の人を含む)。たとえば、PASCAL を知っているのがあなただけで、このプログラムの保守とサポートの唯一の所有者になりたくない場合、PASCAL は、より広い開発者ベースを持つ言語ほど適切な選択ではない可能性があります。あなたのお店で。

それが決定の問題でない場合 (たとえば、複数の開発者がすべて同じ範囲の言語に等しく精通している場合など)、gnu PASCAL の移植にかかる時間を見積もって、たとえば Perl の移植に必要な時間を見積もり、時間がかからないターゲット言語を使用します。使用する時間。

それも決定の問題でない場合 (つまり、同等レベルの労力)、実行時の経済性 (より高速で、メモリ フットプリントが小さい) を検討します。

于 2008-12-07T00:57:35.597 に答える