Доброго времени суток!
> Хороший форт-стиль предполагает именно это. В DSSP пошли еще дальше -
> там
> даже части if и then выносят в отдельные слова :)
Интересно - какие имена им присваиваются?
> тот участок кода, в котором ловишь исключения. Да и нужда в локальных
> переменных
> сильно уменьшится, если привыкнешь писать более короткие слова
> (предложения точнее :).
Она и так не велика... Но всё-таки локальные переменные позволяют
сократить зависимость между словами. А каждое слово, имхо, должно
выражать что-то конкретное, а не "половина присваивания + пол чего-то".
Вот то слово, которое мне надо переписать "по путю":
\ Развернуть тело определения
: expand-macro ( a-addr -- )
{ | buf mem pos }
\ Выделяем память для буфера и макроса
/buffer ALLOCATE THROW TO buf
/memory ALLOCATE ?DUP 0<> IF
buf FREE THROW THROW THEN
DUP TO mem TO pos
\ Трансляция тела макроса
DUP CELL+ SWAP @ 0 ?DO
next-line
buf >buffer expand-line
pos >memory TO pos
LOOP DROP
\ Дописываем 0-терминатор и освобождаем строку
0 pos C!
buf FREE THROW
mem
;
Я и так уже сделал из одного слова три (это правильнее с точки зрения
идеологии Форта, но на практике, скорее, потребует группировки этих трёх
слов в одно :) ). Но вот то что осталось - оно выражает вполне ясную и
конкретную вещь. Я могу вынести центральную часть слова в отдельное
слово, но как его назвать? К тому же - если использовать технику с CATCH
- мне всё равно придётся сделать три слова. Будет дурдом типа:
: развернуть-макрос-на-самом-деле ... ;
: выделить-память-под-буфер-строки-и-развернуть-макрос ... ;
: выделить-память-под-развёрнутый-макрос-и-развернуть-макрос ... ;
: развернуть-макрос .... ;
> И за счет "вынужденного" присвоения имени выделенной части код
> становится намного
> читабельнее.
Вспоминается "Имя сестра! Имя!". :) Читабельность меня и беспокоит,
вообще-то. :(
> Т.е. тот сишный стиль, который ты
> пытаешься
> сохранить.
В С-ях бы это выглядело совсем по другому... Хотя общая стркутура,
конечно, была та же самая.
> если слово
> используется всего один раз.
У меня там уже и так N слов, которые используются один раз. :(
--
Алексей Царегородцев.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>
http://get.splunk.com/_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev