サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
7: 2011-07-02 (土) 22:39:55 sero ソース 現: 2024-01-08 (月) 12:59:02 lina ソース
Line 20: Line 20:
- で、作った。ファイル名: input.c - で、作った。ファイル名: input.c
 #include <guigui01.h>  #include <guigui01.h>
 + 
 void G01Main(void) {  void G01Main(void) {
  static const unsigned char cmdusage[] = {   static const unsigned char cmdusage[] = {
Line 29: Line 29:
  char * const p0 = g01_bss1a1, *p = p0;   char * const p0 = g01_bss1a1, *p = p0;
  int flag = 0;   int flag = 0;
 + 
  g01_setcmdlin(cmdusage);   g01_setcmdlin(cmdusage);
 + 
  for (;;) {   for (;;) {
  int c = jg01_inkey3();   int c = jg01_inkey3();
Line 37: Line 37:
  c = '\n';   c = '\n';
  g01_putc(c);   g01_putc(c);
 + 
  if (!flag) {   if (!flag) {
  if (c == 'q')   if (c == 'q')
Line 52: Line 52:
  }   }
  *p = '\0';   *p = '\0';
 + 
  g01_getcmdlin_fopen_s_3_5(0);   g01_getcmdlin_fopen_s_3_5(0);
  jg01_fwrite1f_5(p - p0, p0);   jg01_fwrite1f_5(p - p0, p0);
Line 85: Line 85:
 ../z_tools/hijk hello  ../z_tools/hijk hello
-** ラインエディタ [#j2a9ff6f]+** ラインエディタ → 中止 [#j2a9ff6f]
- 最小限のツールセット(上記)でもプログラムが作れることは実証できた。 - 最小限のツールセット(上記)でもプログラムが作れることは実証できた。
- しかし、ミスタイプがあるたびに入力を最初からやり直すことは、ある程度以上の規模のプログラムにおいて、現実的でない。そしてこの規模の限界は相当小さい。 - しかし、ミスタイプがあるたびに入力を最初からやり直すことは、ある程度以上の規模のプログラムにおいて、現実的でない。そしてこの規模の限界は相当小さい。
Line 98: Line 98:
- と、2010-07-01の昼頃からこの仕様を考えた。これから、紙の上でnaskプログラムを作成する。 - と、2010-07-01の昼頃からこの仕様を考えた。これから、紙の上でnaskプログラムを作成する。
 +
 +- プログラム作成の手順は次のようにすることを考えた。
 +++ まず、"_G01Main: ret"という何もしないプログラムを作成する。
 +++ これに、機能をひとつ付け加えたプログラムを紙の上で作る。
 +++ 元のプログラムをcpy.g01でバックアップし、input.g01で新しいプログラムを入力する。
 +++ 動作を確認し、次の機能の作成に移る。
 +++ 以上を、プログラムが完成するまで繰り返す。
 +- この手順だと、書くべきプログラムの量は増えるが、全体を一気に入力する方法に比べてデバッグがやりやすいと考えた。
 +
 +- 2011-07-13現在、上の手順を2回繰り返し、コマンドラインパラメータの定義と、入力ファイルを開き(デバッグ用に)そのまま出力する機能が実装された。
 +-- &ref(lineedit.nas);
 +- この時点でプログラムは607バイトあり、この入力に約5回タイプミスをしてやり直した。
 +- 手元にラインエディタ全体で約2.5KBを下回ることはないという見積もりがあるので、プログラムの長さはこの約4倍以上になる。
 +- 簡単な計算によりこのプログラム全体をタイプミス無しに入力できるまでのやり直し回数の期待値は600回余りとなる。
 +- これは(不可能でないまでも)現実的な値でないので、もっと短いプログラムでソースコードの入力支援を行う必要があると結論し、ラインエディタの作成を中止した。
- まだ未完成。進展があったら更新。 - まだ未完成。進展があったら更新。
 +
 +** 展望 [#za6ea769]
 +- この企画でやってみたいことの列挙
 +:: Hello, world | GUIGUI01によるセルフ開発が可能であることの実証 (完了)
 +:: ラインエディタ | テキストデータの入力支援
 +:: (詳細未定) | プログラムの入力支援
** コメント欄 [#yd6c8bdd] ** コメント欄 [#yd6c8bdd]
- おもしろそう! -- ''k-tan'' &new{2011-07-01 (金) 09:18:22}; - おもしろそう! -- ''k-tan'' &new{2011-07-01 (金) 09:18:22};
 +- なるほど、確かに外部プログラム起動の機能はほしいですね。 -- ''k-tan'' &new{2011-07-04 (月) 07:29:45};
#comment #comment

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。