1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Perl苦手で自動化失敗

オープンソースのプログラムのうち、goto文を使っているソースコードをPolySpaceVerifierで動的検査をする際に、先に進むgoto文でないと検査ができず、戻るgoto文は、先に進むgoto文に書き換えるソフトウェアを書こうとした。 

Code Complete:goto論争の終焉

当時は、まだPerlが流行っており、Perlで例題を作ってもらった。 

先に進むgoto文にも、種類がいろいろあり、前後の構成、などの構造が少し違うと、 perlのプログラムで全対応できず、結果として、手作業で修正するものもできた。 

失敗の要因

Perlに馴染んでいない 

Basicではプログラムジェネレータジェネレータを書いたことがあり、 抽象的なデータ構造をどう作れば、インタプリタとして有用な自動生成コードが作成できるかは習得していた。 

pascalで書かれたコンパイラをc言語に書き換えたり、c言語で書かれたコンパイラの改良をしていた。
C言語でも自動生成ソフトは書いていた。

その経験が邪魔をしたのか、Perlで作られた原型の変形がうまくできない。 

心理学の本を読むよりはコンパイラ書いた方がよくね。仮説(34)

全類型を最初に分析していなかった 

一番多い累計用のものを作り、それを変形するという方針で臨んでいた。基本設計方針がだめだった。

元に戻るgotoは不必要。 

ほんの数バイトの節約、ほんの数クロックの節約のため、危険を犯す必要はなく、元に戻るgoto文を書く必要がなかったと思う。 

全部手で先に進むgoto文に直せば終わり。自動で書き換えて試験をするという方針がださい。 

CountDown Calendar 2022

今年企画した6つのCountDown Calendarと、それぞれの記事一つをご紹介します。

AUTOSAR CountDown Calendar 2022

AUTOSAR References to ISO, IEC, ITU, IEEE, RFC and SEA etc.

Automotive Handbook CountDown Calendar 2022

Basic principles, ボッシュ自動車handbook(英語)11版まとめ<2>

2022 いいねをいただいた記事ランキング(O.K.版) CountDown Calendar 2022

2022年1月下旬 いいねをいただいた記事 16

AdCale(O.K.) CountDown Calendar 2022

「会議は15分未満」に。小耳にはさんだ話。

CountDown Calendar 2022 報告

誤差の評価が苦手(専門分野以外)

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

文書履歴(document history)

ver. 0.01 初稿 20221225
ver. 0.02 ありがとう追記 20230625

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?