ページビューの合計

イエスから目を離さないでいなさい。(へブル 12:2)

2017-07-31

よそよそしい会話

今月は教会churchに行ったのが2回である
なにか教会がよそよそしく感じはじめた
妻は先月、今月と2か月教会を休んでいる
これも老いたということだろう
文久堂によっても社長とのよそよそしい会話
勝どきによって、帰ってきた
駅で飯田さんとしゃべった
この短い会話が印象にのこった
自宅に帰って妻との会話、これが一番いい

朝、ラジオ体操での短い会話
昼、入浴時の短い会話
などなど、楽しく会話を大切に

昨日の寝る前、とても嫌な会話があった

よそよそしい会話、楽しい会話、嫌な会話
印象に残る会話

2017-07-30

the temptation was so great

There she paused for a while thinking...
but  the temptation was so great that she could not conquer it.
彼女は一瞬ためらったが、誘惑には勝てなかった

人生によくあることである
彼女でなく、彼でもよい
そんななかを乗り越えて生きてきた

あなたはなぜLISPのコードをいじるの
と声がする
わたし、それが好きなの と答える

コードはバージョン2、バージョン3と
続く、先はながい
のんびりいこう

急ぐな、急ぐな

2017-07-29

リンクとその解除

#define  link()  (*--sp=fp ,fp=sp)
#define  unlk()  (sp=fp,  fp=*sp++)

とある。何をしているんだろうか?
spはスタックポインタだ。
新しく関数を実行したい。引数が2個以上だ。
こんなとき、スタックを利用する。
はじめる前に link() を実行し。そのときの
スタックポインタをfpに保存する。
「fpから関数処理に必要なデータがあるよ」
と言っている。
その関数処理が終わったら、
その前の関数処理を続けるため
fpの前の状態はスタックに保存する
2引数なら、*(fp-1)に第1引数の評価結果
*(fp-2)に関数定義を入れる。
第2引数の評価結果xを得たら
x,*(fp-1),*(fp-2)を使って関数を実行
*(fp-1)は *sp++ と記述してある。
終わったら、その前の関数処理に戻すため
unlk() を使い、sp, fp の値を戻す。

難しい、難しい

2017-07-28

Mr.トルネード:50%正しければ

LISPのソースコードを昔の論文と
比べながら読んでいる。
コードが論文の内容と違っている。
はっと驚く。主著者は私よ、困った
コードをよく読んで、訂正することだ
30数年前の論文だけど、ネットに残っている
何かを書き残すことは責任が伴う
だからといって、何も残さないわけにいかない
Mr.トルネードの藤田哲也先生は
「より多くの考えを発表し論争を生み出したい。
見極めるのは君たちだ。
特に若い人は恥ずかしがらず
言いたいことを言うべきです
半分は間違っているかもしれない。
だが、残りの半分は正しいかもしれない
もし50%が正しければ
価値ある人生を送ったということです」
といって、主張の50%が正しければよいと言っている
間違いは常にあることを痛感した

注意、注意

2017-07-27

不明なソースコードをも読む

LISPの数千行にわたるコードには
不明な機能の記述もある
これから加える機能のための準備もある
それらは保留にして、先に進む
全体像をつかむことが重要である

人生に起こることも不明なことが多い
でもそれは神様が何かを準備し
私の訓練のためにあるんだと受け取って
過ごしてきた
そんなことを思う

保留も大切、すべてを知ろうと思うな

2017-07-26

妻を動かす

動かないと太ったり、
他人との会話が少なくなったり
いろいろ障がいがでる
膝が痛いのでクリニックに週2回いく
これだけでもよい
スポーツクラブに週2回行く
これで週4回でかけることになる
出かけるだけで、体は自然にうごく
血栓もできにくくなる

動け、動け

2017-07-25

プログラミングを楽しむ

毎日何をしてるの?
パソコンをいじっている。
パソコンで何をしてるの?
プログラムを作るのが趣味でやっている
いいな、老化防止になるよ

こんな会話があった
プログラミングが楽しめるのはありがたい
これまで教えてきたいろいろなソフトを思い出し
機会があったらもう一度見直したいと思う
あれもしたい、これもしたい。
できないかもしれないが挑戦したい

挑戦、挑戦

2017-07-24

見えないものを見る:LISPを教えられることはありがたい

LISPのソースコードに触るのは盲人が象をさわるのに似ている
LISPの全体像が見えていない。
いろいろな角度からさわってみて、理解を深める。
最終的に自分で修正をくわえられれば理解が深まったことになる

見えないものを見るには、時間がかかる。
講義回数を増やしただけではだめである。
見えないものを見てもらうには講師の説明方法もある。
話し方で受講生に見えたような気持になってもらう。
聞いたときは分かったような気持になるが
後でよく考えると分からない ということもある

TVドラマ「最高の人生のはじめ方」で見えないものを見ることを教えている。
「何が見える」「何も見えない」「心の目でみなさい」
「何が見えない」「カーボーイは見えない」「人のまねはだめ」
などと会話が続く。

大学のプログラム教育では、その時流にあったものを教える。
教えやすく教える。見えないものは教えない。

こんな傾向があり、LISPのソースコードようなプログラムは
難しくて大学教育ではとりあげにくい。
卒業論文の指導でも取り上げなかった。このような機会に、
少ない回数であるが 話をできるのはありがたいことである。

ただ、もっと難しく、とっつくこともできないソフトがたくさんある
LISPのソースコードはまだやさしい

感謝、感謝

2017-07-23

友人と25年ぶりに電話

古い友人から暑中見舞いをもらった妻が
電話をかけた
25年ぶりの会話である
翌日野菜が送られてきた
妻はまた電話した
いただいた野菜を嬉しそうに料理した
おいしかった、よかった

感謝、感謝

2017-07-22

ガーベジコレクション開始

今日からガーベジコレクションに取り組む
一番嫌なやつだ
この処理は、
ハッシュテーブルからたどれる全部のセルに
マークする。セルにマークする関数は
setmark(セル)
である。スタックからたどれる全部のセルにも
マークする。
マークのないセルをフリーセルにつなぐ。
全部のセルのマークを消す。
これだけの処理だがプログラムが動かない。

忍、忍

2017-07-21

LISPのコードを今日も読む

#define arg1  (*(fp-3))
と書いてある。これはarg1を使うときは、
fpというポインタが存在することを前提の定義だ。

#define  arg1(x)   xを使った式
が一般に使われる定義だ。

この定義は第2引数と第3引数に関数関係がない
特殊な #define の利用方法である。
プログラムを読むときは、よく注意する必要がある。

注意、注意

2017-07-20

LISPのハッシュテーブルは難しい

LISPインタープリタでハッシュテーブルを使う
Obvect という名前だ。新しいシンボルを作ると
そのハッシュ値をvpとする。
Obvect.ob[vp] からこのハッシュ値をもつシンボルのリストが続く。
a1a2 がすでに登録されているばあい、
新しくa5を登録するには図のように、
セルの第1要素がa5,2要素がa1のセルの番地を持つセルを作り
Obvect.ob[vp]をこのセルの番地に変える
注意することは、a1のセルの番地は
Obvect.ob[vp]の変更前の値になっていることだ

こんなことを理解するのも難しい


難しい、難しい

2017-07-19

ものまねシングルクオート

LISPでは、「'a」 と入力すると「a」が戻る。
LISPのソースコードでは、
入力文字に「'」があると、次に続くS式を読んで、
(Quote  S式)というリストを作り評価する。

これは何にたとえればいいのだろうか。

だれかのものを引用する、ものまねをする

ようなものだ。自分のものでない。

2017-07-18

ガラケープログラム!がんばれ

1970年代のプログラムは古い
オブジェクト指向でない
古いプログラムは忘れ去られる
ガラケープログラムだ

文学、芸術などで古いものが大切にされる
プログラムでは忘れ去られる
LISPインタープリタのコードを見ながら思う

「これは古い、ガラケーだ
 でもここで使われている手法は伝えたい」

教育現場では現在利用価値のあるものを教える
ますます古いコードは見捨てられる
顧みられなくなる
ガラケーがんばれ!!

2017-07-17

LISPのコードを毎日読む03

秋の講義の準備で
LISPのソースコードを毎日読む
今日は無限ループだ。
for(;;){
 printf("...",bind(Prompt));
 bind(Qmark)=eval_(xread());
 printf("...",bind(Qmark));
}
#define bind(x)  (*(obj*)(x))
となっている。car(x)と同じだよ。
またPrompt,Qmarkは次のようになっている。
#define  Qmark  ((obj)(symbols[21].ob))
#define  Prompt  ((obj)(symbols[23].ob))
この部分で、読んで、評価して、表示している。
これをすんなり受け入れられるかだ?

頭が硬い、硬い

2017-07-16

自分の愚かさを嘆く

秋の講義の準備で
LISPのソースコードを毎日読む
だんだん慣れてくる

LISPは初期化の部分でへんだ
この構造体、static で2つのファイルで定義してある
おなじ名前obv で構造が違う
一つを削除してやり直す
obvのサイズを表示しようと思って間違えた形を加えた
こんな間違えあるんだな、と驚く。

ぼやき:お前はだめだ

2017-07-15

LISPのコードを毎日読む01

秋の講義の準備で
LISPのソースコードを毎日読む
だんだん慣れてくる

LISPは初期化の部分と
インタープリタの部分がある
準備の部分でいろいろな構造のデータが並ぶ
一番やっかいなのはデータの途中を
ポインタの値として使うこと

typedef short  id;
typedef unsigned long  obj;
struct _cell {id ty,obj ob[2]};
struct _cell a;

でセル1個、((obj)&a+4)の番地を使う
これはa.ob[0]の番地a.obなの、セルのcar部分
ここを構造体のCAR番地って呼んだ
私がかってにつけた名前

#define type(x)  (*((id*)(((unsigned long)(x))-4)))

として、tyを参照、tyに値を保存 など利用する
こんなのいやね
でもおもしろい使い方だともね

忍、忍

2017-07-14

妻の膝

若狭クリニックで妻の膝のレントゲン写真をみた
どこも悪くないように見える
膝の骨のとんがりが2か所あるがこれは普通の状態とのこと
このへん、このへんが変形してるというが
素人には変形があるように見えない
写真に写らない軟骨が骨の間にあり、
それが変形していることもあるらしい
正常な写真と比べると、骨の間がせまい。
整体師の方が足伸ばしの治療をしてくれた。
その夜の「ためしてガッテン」で同じような病状の患者の
治療方法の紹介があった。膝の周囲の説明が詳しくされた。
足をゆっくり伸ばす運動を朝昼夜と繰り返す

とよいとのこと参考になった。


2017-07-13

妻の体調悪化

昨夜、自転車を引いて散歩にでた
今日は目標の15000歩に4000足りない
10分で約1000歩、40分の散歩だ、
25分くらいたちTAIRAYAの店内にいたら
電話だ、妻が体調が悪い とのこと
すぐ自転車で帰る
心臓がドキドキする。めまいがする。
不整脈だ、タクシーを呼んで病院へ行くことを考えた
水を飲んだらおさまった。
熱中症らしい。今日は水を飲む量が少なかった

安堵、安堵

2017-07-12

関数呼び出し錯覚

C言語で、関数を使うときは
関数名() とか 関数名(引数の並び) という形で使われる。
関数呼び出しは、代入式の左辺には置かれない。
ところが
#define  car(x)   (*(obj*)(x))
とすると
 car(x) =  式 ;
と使う。関数呼び出しが左辺で使われているような錯覚に陥る
単に 定義で()が使われているのに、関数に見える。
分からなくなる。

注意、注意

2017-07-11

腕、首の湿疹

アトピーのように、腕の内側、
首のまわりにブツブツができた
皮膚が赤く、湿疹がいっぱいだ
昔、妻が赤子にベビーパウダをつけた
幼児がかゆがるように、かゆい
昔、父が風呂上りに必ずベビーパウダをつけた
父はよく「かゆい」と言っていた
自分もベビーパウダをつけた
1か月間狭山ヶ丘航空公園間を自転車で往復
片道40分、たえず日光にさらされた生活
皮膚が痛んだんだろう

用心、用心

2017-07-10

C言語の関数ポインタが難しい

関数ポインタを難しく感じる。例えば
int add(int x, int y){return x+y;}
と関数定義する。
関数ポインタは、void (*f)() で戻り値の
ない関数ポインタfを宣言する。
これに add を代入するにはキャストで
f  = (void (*)())add;
とする。
「これ、分かりにくくない。」
キャストの型は
void (*f)() の f を除いて括弧でくくったのよ。
f を使って足し算はこんなふう
int x = (*(int(*)())f))(10, 20);
いやらしいでしょ!!

難しい!難しい!

2017-07-09

元気なパソコンたち

13年?くらい前に、
大学で購入したパソコンたちを
講義があるときいちょう塾に持ち込んで
コンピュータの講義を続けてきた
パソコンたちは元気で動き続けている
退職時に大学は古いパソコンを寄付してくれた。
これがいまも動いている
10数台あれば、13年も使うと
メモリ、HD、キーボード、ディスプレイ、USBなどで
故障がでて数台は使えなくなるが、みんな元気だ
驚きだ、
パソコンたちよ、これからも元気で働いてね

不思議だ、感謝だ

2017-07-08

LISPインタープリタの講義の準備1

秋に八王子いちょう塾で行う
LISPインタープリタの講義の準備をしている。
3回の講義なので、初心者には分からないだろう。
1日目は
ubuntuのインストール、LINUXの使い方から始める。
LINUXのコマンドの説明は例題を使って手短にする。
LISPインタープリタのコンパイルの説明だ
2日目は
LISPインタープリタを使い、簡単にLISPを紹介
LISPのコマンドが処理されるときに
      使用されるセル数の説明
3日目は
LISPインタープリタの構成
LISPインタープリタのフローの説明

これでいいのだろうか?
と思いながらの準備である。

2017-07-07

LISPインタプリタのセル01

セルの内側はクローゼット、前室、後室からなる
ここに整数を入れるには、
クローゼットは整数、前室の値が整数値になる
ここに倍精度実数を入れるには
クローゼットは倍精度実数、前室後室を一緒にしてそこに値を置く
そんなことプログラムできるの?
セルをセルとして使うには
クローゼットはセル、前室は他のセルの番地、後室も他のセルの番地
前室に自分のセルの番地をいれると、ループになるよ
いつまでたどっても終わらないよ
こんなプログラムを説明しないといけない
いやだね!!

2017-07-06

歯ぐきをこする

入浴のとき、歯ぐきを指でこすり
歯ぐきの血流量が増えるように刺激をあたえる
寝る前にも、歯ぐきを指でこする
朝眼覚めたとき、讃美歌を10曲ていど歌う
このとき、舌を口内で動かし
歯ぐきに刺激をあたえる
たえず歯ぐきをこすり、
舌で歯のまわりを刺激している
歯磨きは、歯間ブラシを使うことが多い
父が竹串を削って、爪楊枝をつくり
歯間ブラシとして使っていたのがなつかしい

歯がながく健康であることを祈って
感謝、感謝

2017-07-05

就寝前の入浴は疲れる

入浴にはエネルギーが要る
父は死ぬ間際まで風呂に入った
就寝前にはいった
よくそんなことができたなと感心する
今の私は日中「老人いこいの家」などの
風呂を利用している
妻は以前は就寝前入浴であった。
ところが退院後は日中の入浴、シャワーになった
入浴は一種の体操だと割り切ってする

妻は以前はスノコに座って入浴した
今は入浴用椅子を使っている
この椅子は父のために買った
生前それを父のために使えなかった。
今 妻が使っている。

感謝、感謝

2017-07-04

俳優の名前を思い出せない

やすらぎの里を見ているが
出演している俳優の名が出てこない
これは認知症予防の訓練になると
覚えようとする
思い出しやすいように記号をふる
I,AS,KG,MK、AR,NG,YC,FB,ST,YM,FJ
脚本 KR
9週に出てきたのが
FJM,TG
こうすると覚えやすい
何回か繰り返すと覚えるようになる
繰り返しは頭の運動
なんでも訓練が必要だ

感謝、感謝

2017-07-03

Windows10のUBUNTUの新インストール方法

いちょう塾の講義に使うパソコンは古いので
この方法は使えないが、
Windows10で簡単にubuntuが使えるのに驚いた。
パソコンのソフトの使用する記憶領域のサイズ制限が
なくなったに等しい現在は、ソフトも新しくなるんだと感じる。
コマンドプロンプトからubuntuの端末 になる。
バージョンは 14.04.5 LTS である。
昨日の夕食後、この機能を知った。
夜、気持ちが高揚して、しばらく眠れなかった。
恐ろしい、恐ろしい

以下参照
http://qiita.com/Aruneko/items/c79810b0b015bebf30bb

追記
gedit はインストールしたが、使えなかった。
LISPはコンパイルできたが、動かなかった。
ubuntuをインストールしたのが理由か否か分からないが
google のgmailが動かなくなった。困った。
gmailのパスワードを覚えていない。

2017-07-02

UBUNTUだけで動くLISP

昔のLISPを作りなおした。
UBUNTUではコンパイルできる、
しかし警告がたくさん出る。
試した少しの他のCコンパイラでは、コンパイルできない。
このLISPコンパイラは、Cのぎりぎりの機能を
使って作られているらしい。
これは特殊なポインタの使い方をしている。
他のCコンパイラではこのポインタの使い方にエラーを出し、
ubuntu の gcc は警告を出すのだろう。
勝手な思い込みかも?
とにかく動けばいい

不思議、不思議

2017-07-01

妻の退院

神経質な妻が35日の入院を終えた
入院して眠れるのだろうかと心配した、😟
隣のベットの患者が 夜、看護婦を呼ぶ。
それでも眠れた😲
神経内科の薬を変えた、
いままで、何回も病院を変えようと思っても
薬を変えると眠れなくなった
今回は、大丈夫だった😊
便秘がひどかったが、これも乗り越えられた
不思議で、不思議でしょうがない!😉
足の痛みが取れない問題が残った😧
血栓は検査の数値が0.5に下がった
ホットする😃
自宅に帰ってからの生活を心配する
2階には行けるようなのでホッとする😊
大丈夫だ、なんとかなるだろう
大丈夫、大丈夫