自動生成されたプログラムはしばしば要素の整理が不充分だと考えられている。冗長である事が分かっている部分はそのまま使うのではなく、要素を整理することが望ましい。ただしプログラム言語の制限によってはパターンの繰り返しを使わざるを得ない場合もある。要素の整理の例を以下に挙げる:
 要素の不充分な整理:
 要素の良い整理:
プログラム合成では上の例のような繰り返しを自動的に行う傾向がある。しかし、よりよいアプローチは、その下の例のように乗算を使って高レベルの抽象化を行うことであると思われる。他の例として、パラメータをアプリケーションのコードではなくファイルやデータベースに入れるといったことも挙げられる。
自動プログラミング
自動プログラミング（じどうプログラミング、）は、人間のプログラマがコードを書くのではなく、何らかの機構によってプログラムを生成するプログラミングの一種である。
概要.
例.
自動プログラミングはコンピュータプログラムの歴史と共にある。より高いプログラミング効率を求めて、より高水準の自動化が長い間推し進められている。
現在のところ、人の指示なしにプログラムを自動生成する技術は実用化されていない。すなわち現在の自動プログラミングは全自動プログラム生成ではなく、抽象度の高いソースコードを基にしたコード生成・変換および記述の省力化と同義である。
以下は自動プログラミングの例である。
生成的プログラミング.
生成的プログラミング（）とは、ジェネリックなクラス、プロトタイプベース、テンプレート、アスペクト、コード生成などの技法を使ってソースコード作成を自動化し、プログラマの生産性を向上させるプログラミングのスタイルである。ソフトウェアコンポーネントなどのコード再利用の技法とも連携して使用される。
ソースコード生成.
問題点.
著作権の問題だけでなく、自動プログラミングにはコードのセキュリティとデバッグの問題があり、プログラミング・エンジニアは自動プログラミングを使う際にセキュリティとデバッグに深い関心を持つこと。
人物・生涯.
朝田善之助
生涯.