В прошлом сообщении о языке программирования Tcl я, как это у меня принято, допустил ошибку.
Мне показалось, будто-бы освоенный недавно мною язык Tcl по сути своей то же самое, что и язык MUMPS.
Хотя
val_2001 и усомнился в целесообразности публикации моих перед ним оправдательных объяснений здесь, я все же это делаю.
Дело в том, что дремучий лес программистских языков, куда, за исключением редких сталкеров, мало кто заглядывает, полон и без меня всякими туманами, обманами, легендами и страшилками.
Я понимаю, что очередной пост о программировании мало кому интересен, но считаю своим долгом исправить недоразумение кем-нибудь здесь прочитанное, даже случайно.
Мне, прежде, чем заявлять о померещившейся родственности систем MUMPS и Tcl, следовало бы посмотреть соответствующие сайты в интернете.
Их много. Даже Википедия дает очень неплохое описание того и другого.
Почему я решил, что Tcl - это то же самое, что MSM?
Когда я впервые раскрыл программу постпроцессор, а все программы на Tcl - это простые текстовые файлы, которые свободно редактируются в Notepad или лучше в WordPad, то увидел следующий текст.
Привожу маленький кусочек из середины реальной программы-постпроцессор. Вся-то она размером около тысячи строк.
#=============================================================
proc MOM_start_of_program { } {
#=============================================================
global mom_logname mom_date is_from
global mom_coolant_status mom_cutcom_status
global mom_wire_cutcom_status
set pb_start_of_program_flag 0
set mom_coolant_status UNDEFINED
set mom_wire_cutcom_status UNDEFINED
catch {unset mom_cutcom_adjust_register}
catch {unset mom_tool_adjust_register}
catch {unset mom_wire_cutcom_adjust_register}
set is_from ""
catch { OPEN_files } ; #open warning and listing files
LIST_FILE_HEADER ; #list header in commentary listing
global mom_sys_post_initialized
if { $mom_sys_post_initialized > 1 } { return }
}
#=============================================================
proc MOM_sync {} {
#=============================================================
if [llength [info commands PB_CMD_kin_handle_sync_event] ] {
PB_CMD_kin_handle_sync_event
}
}
Понимаю, что даже для программиста из соседней от Tcl деревни эта белиберда может показаться страшной букой. Что уж говорить о людях, далеких от компьютерной казуистики.
Ну я-то не сильно испугался потому, что давно пуганный.
Сразу обратил внимание на эти МОМ - совершенно не обязательные приставки к именам, зачем-то используемые в программе-постпроцессор. "МОМ" - "МUМPS" не зря, думаю, наверно.
Отсутствуют типы переменных - любой переменной можно присваивать и пере-присваивать все, что угодно.
Никаких деклараций переменных не требуется.
Там и там так же.
Все переменные доступны только внутри процедуры, если не объявлены, как глобальные. В MUMPS, кажется, наоборот, но я об этом забыл.
К тому же, все присвоения там и там делаются командой SET. Программы в MUMPS - текстовые и он является интерпретатором, подобно Tcl.
Интерпретаторы Tcl, как некогда MUMPS, можно загрузить совершенно бесплатно.
Мне, почему-то, померещилось, будто много лет назад, разбираясь в многочисленных инструкциях по MSM, я неоднократно встречался с аббревиатурой Tcl.
Одним из провоцирующих факторов явилось то, что следующим языком, который мне довелось освоить после MUMPSа оказался Lisp.
Я был влюблен в Lisp лет пять, и сейчас считаю, что более лаконичного, логичного и красивого языка нет.
А Lisp, уж точно, является родным дядей Tcl.
В общем, все смешалось в бедной головушке и решил ваш бедолага от программирования, что Tcl, напавший на меня из UGS, есть тот же самый MUMPS, только "вид сбоку".
На самом деле MUMPS и Tcl - это животные разной породы.
MUMPS появился гораздо раньше Tcl и предназначался для работы с базой данных, тогда, как последний был сочинен для манипуляций текстовыми строками.
Как там у Маяковского:
Лошадь сказала, взглянув на верблюда:
- Какая ужасная лошадь-ублюдок!
Верблюд же воскликнул:
- Да лошадь разве ты?
Ты - просто-напросто верблюд недоразвитый!
И знал лишь Бог седобородый,
Что это животные разной породы.
Нужно заметить, что обе системы имеют все же своим изначальным корнем знаменитый язык Си. Они всюду на него прямо ссылаются.
Вот ссылка на хорошее русское сообщение языка Tcl в Википедии:
http://ru.wikipedia.org/wiki/Tcl
Вот ссылка на английский рассказ о MUMPS:
http://en.wikipedia.org/wiki/MUMPS
val_2001 и те, кому вдруг показалось интересным!
Хотя Tcl, на котором я в пятницу наконец закончил первую версию постпроцессора, по многим причинам не стал моим любимым, я был бы рад поделиться любыми, добытыми мною сведениями о нем.
Как обычно после разрушения языковых барьеров и отшелушивания излишеств, все оказывается весьма просто.
Только этот пост надобно уже закончить.