Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 15:48

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Статья: Форт и методология науки
Автор Сообщение
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
Victor__v писал(а):
Есть я, что написать

Руководство к работе для еще 99 программистов :)
Сообщение Добавлено: Сб апр 08, 2017 22:33
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
Цитата:
Отсюда же превратившиеся уже в миф «сотни программистов, которые напишут тысячи библиотек»

Есть я, что написать :)
Сообщение Добавлено: Сб апр 08, 2017 22:01
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
mOleg писал(а):
таки, возможно и реализовано(реализация может не нравиться, но мешает утверждать невозможность).

Не мешает :)

: 0 0 ;
: 1 1 ;
...
: -1 -1 ;

И дополнительно : 01 1 ; : 001 1 ;

Терминологические игры только запутывают. Аргументы "это в стиле Форта", "так написано у классиков" и "мне понадобилось" уже описаны выше :)
Сообщение Добавлено: Вс фев 26, 2017 15:59
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
mOleg писал(а):
Поиск возвращает исполнимый адрес кода и дальше этот код исполняется (всегда, т.к. immediate).
А там в зависимости от state либо литерал выкладывается на стек, либо компилируется

Поиск возвращает исполнимый адрес кода.
А там в зависимости от state либо этот код исполняется, либо компилируется.

Как говорится - найдите несколько отличий.
Кроме того поиск вами понимается широко. У вас в поиск входит не просто сравнение лексем, но и их анализ.

Все-таки я остаюсь при своем мнении - разные вещи лучше называть по-разному.

ps. Я не против вашей организации форт-системы, может оно вам так и удобней.
У меня взгляд на это совершенно другой - минимальный объем в оперативной памяти программиста всего что касается управления транслятором в ходе создания программ. Отсюда другая работа со стеком, с пространством имен, с состоянием интерпретатора и т.д.
Сообщение Добавлено: Сб фев 25, 2017 20:00
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
В принципе и слово (механизм его использования) может быть довольно сложным,
например, как при использовании его в процессе встроенных макрооптимизаций SPF4. :)
Сообщение Добавлено: Сб фев 25, 2017 17:55
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
Цитата:
И чего здесь добавляется в текущее определение?

Вы все же невнимательно читаете.
Поиск возвращает исполнимый адрес кода и дальше этот код исполняется (всегда, т.к. immediate).
А там в зависимости от state либо литерал выкладывается на стек, либо компилируется, как, скажем слово IF
Сообщение Добавлено: Сб фев 25, 2017 17:42
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
mOleg писал(а):
Как раз нет никакой разницы, меняется лишь код, добавляемый в текущее определение.

Код:
CREATE arr 1024 ALLOT

И чего здесь добавляется в текущее определение?
Сообщение Добавлено: Сб фев 25, 2017 17:25
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
Цитата:
Ну вот в этом и есть отличие лексем чисел и других подобных лексем от лексем имен

Как раз нет никакой разницы, меняется лишь код, добавляемый в текущее определение.
Просто в таком исполнении литерал больше похож на слово немедленного исполнения, коим и является по сути.

Цитата:
Короче как-то нужно различать одних 'кошек' от других

как раз, наоборот, их ненужно разделять, должно быть максимально однообразное поведение:
1) выделяем последовательность символов, ограниченную пробельными символами
2) ищем в контексте (можно и по дереву словарей), находим CFA и признак immediate
3) если imm исполняем CFA иначе компилируем его в код
в любом случае однообразие. Никаких NOTFOUND неуправляемых, или попытки распознания не пойми чего, как литерала.
Сообщение Добавлено: Сб фев 25, 2017 17:04
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
Цитата:
Компилируется только код литерала.

Ну вот в этом и есть отличие лексем чисел и других подобных лексем от лексем имен. Собственно нужно по информации в наборе символов в лексеме сгенерить соответствующий ей код(это уже синтаксический анализ). Понятно, например, что в режиме исполнения программы такая генерация кода может существенно замедлить исполнение программы. Короче как-то нужно различать одних 'кошек' от других. Проще для ясности называть одних кошек кошками, а других как-то по другому. ИМХО.
Сообщение Добавлено: Сб фев 25, 2017 16:50
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
Цитата:
В форте исполнение с компиляцией на лету используется, но лексемы, которые таким образом интерпретируются словами называть не принято

Где это зафиксировано? Тем более, что вы не правильно понимаете устройство.
Компилируется только код литерала. Весь остальной код статичен.
Опять же, кем не принято - где это сказано, почему это должно быть правилом?

Два действия есть в любом случае:
1 - поиск в словаре по имени (последовательности символов)
2 - исполнение, либо компиляция кода, связанного с именем.
И то и другое имеется.

есть некий внутренний механизм, который на самом деле не так важен,
и есть интерфейс к нему, которым мы пользуемся и который для нас таки важен,
и "если это выглядит, как кошка, мяукает, как кошка и ластится, как кошка - то это таки кошка".
Сообщение Добавлено: Сб фев 25, 2017 16:19
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
Вы путаете готовый экземпляр кода для слова, который сразу исполняется и код для генерации кода исполнения для каждого экземпляра из множества лексем чисел, который сначала создается, а уже потом передается на исполнение. Это называется исполнением с предварительной компиляцией кода ('на лету'). Просто это действие вы вынесли из кода интерпретатора в код словаря.
: 5 5 ; \ вот готовый код числа 5 для лексемы '5'

В форте исполнение с компиляцией на лету используется, но лексемы, которые таким образом интерпретируются словами называть
не принято. Вот 5 из вышеприведенного примера уже можно назвать словом.
Сообщение Добавлено: Сб фев 25, 2017 15:58
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
Цитата:
Вопрос про числа терминологический.

и практический

Цитата:
Если принять, что лексема (имя) соответствует коду, который уже существует

именно так и реализовано - не правы вы

Цитата:
а если принять, что код будет сгенерирован в ходе интерпретации лексемы, то вы правы

и то и другое на самом деле происходит (может происходить)

Цитата:
Традиционное понимание понятия слова в форте говорит, что вы не правы.

давайте традиционное определение
Сообщение Добавлено: Сб фев 25, 2017 15:13
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
Вопрос про числа терминологический. Если принять, что лексема (имя) соответствует коду, который уже существует, то вы неправы, а если принять, что код будет сгенерирован в ходе интерпретации лексемы, то вы правы. Традиционное понимание понятия слова в форте говорит, что вы не правы.
Сообщение Добавлено: Сб фев 25, 2017 10:31
  Заголовок сообщения:  Re: Статья: Форт и методология науки  Ответить с цитатой
Hishnik писал(а):
Например, невозможно представить словами 2^32 чисел

таки, возможно и реализовано(реализация может не нравиться, но мешает утверждать невозможность).

А вот, что обсуждать я не знаю 8)
Имхо, несколько за уши притянуты аналогии.
Сообщение Добавлено: Сб фев 25, 2017 07:08
  Заголовок сообщения:  Статья: Форт и методология науки  Ответить с цитатой
Форт и методология науки

К сожалению, современный курс философии, читаемый студентам, часто является выхолощенным и сводится к запоминанию фактов без попыток их осмысленного анализа и применения к реальной инженерной практике. Несмотря на это, гносеология («философия познания») как таковая имеет прямой выход на практические методы работы. Особенно важно это для редких направлений работ, к которым относится и Форт, поскольку в этом случае кроме собственно программирования приходится заниматься и планированием работ, формулируя задачи самим себе.
В XIX веке Эрнст Геккель сформулировал интересное наблюдение. Выяснилось, что зародыш человека повторяет в своем развитии представителей других биологических видов. На ранней стадии у него есть зачатки жабр, затем он похож на земноводных, а затем на птиц. В биологии было высказано предположение, что онтогенез повторяет филогенез (т.е. развитие организма повторяет эволюцию видов как таковую). По аналогии с этим можно заметить, что отдельный исследователь в процессе эволюции своего мышления в чем-то повторяет эволюцию философской мысли. Почему бы не обратиться к истории, тем более что процессы, проходящие в философии на протяжении веков и даже тысячелетий, уже хорошо изучены.

1. Итак, одним из первых выраженных направлений был стихийный материализм. Если расшифровывать – это поиск первоэлемента (стихи), из которого все состоит. Древние греки рассматривали в качестве таковых и воду («все течет»), и огонь, и абстрактный апейрон (чтобы разрешить конфликты с противоположными стихиями). Развитием этого считают подход Пифагора, заявившим, что «все есть число». Направление было интересным, но практика показала, что философия науки ушла от такого упрощенного подхода довольно далеко вперед.

Как это проявляется в Форте. Простейший вариант - «все есть стек». По аналогии с Пифагором – «стек стеков». В качестве методологически аналогичной вещи – все есть файл, все есть слово и т.д. Надо сказать, что «все есть слово» довольно-таки важное утверждение, поскольку Форт во многом на таком подходе и основан. Однако попытки представить словом даже то, что им объективно не является, рано или поздно найдут свою границу применимости. Например, невозможно представить словами 2^32 чисел.

2. Следующим историческим этапом была христианская апологетика («апологет» - сторонник, защитник). В период борьбы за распространение христианства апологеты занимались разъяснением того, что «так тоже можно». Известно изречение «верую, ибо абсурдно» (впрочем, здесь есть много нюансов и определенный контекст, в котором оно было сказано). Конечным итогом явилось то, что существует религия, которая все объясняет, и надо просто полагаться на веру.

Как это проявляется в Форте. Что интересно, на этом этапе фортер уже прошел стадию стихийного стекового материализма, принял существование стека и словаря как данность, и наподобие апологетов христианства занимается доказательством того, что «Форт тоже можно использовать». Ключевое слово здесь «тоже» - в этом контексте Форт занимает вторичное, подчиненное положение. Стек и словарь рассматриваются как религиозные догматы, которым надо следовать, даже если они выглядят абсурдно. И особенно если они выглядят абсурдно, поскольку от применения стека ожидаются некоторые чудеса. Можно встретить и высказывания о том, что если задача не решается, ее надо просто переписать на Форте, и все заработает – ну чем не религия?

3. Ближе к развитому Средневековью христианство заняло прочные позиции в Европе и доказывать, что «так тоже можно» стало бессмысленным занятием. В то время в Европе уже только так и можно было. Философы переключились на интерпретацию религиозных текстов, их сравнение и сопоставление. Текстов было много, к Ветхому и Новому Завету добавились труды так называемых «отцов церкви», а на местах было и собственное начальство. Ориентироваться во всем этом стало крайне сложно, тем более что и в Евангелии можно было найти множество формально противоречащих друг другу утверждений (например, «подставь другую щеку» и «не мир принес вам, но меч»). Философам приходилось быть крайне осторожными в формулировках, в итоге высказывания стали крайне завуалированными и узконаправленными. Из этой эпохи происходят вопросы «может ли Бог создать камень, который не сможет поднять» или «сколько ангелов уместится на острие иглы». Более показательный пример – ожесточенные споры о том, сколько лапок у мухи, ориентируясь при этом на труды Аристотеля. Поймать муху и посчитать лапки – нет, это не к нам. Отсюда родилось понятие «схоластика» (т.е. школярство) – длительные споры об интерпретации текстов, признанных бесспорными, апелляция к «отцам церкви» и признанным авторитетам.

Как это проявляется в Форте. Любые отсылки к Муру, применяемые в качестве «последнего аргумента». Ссылки на стандарт в стиле «раз в стандарте так, это бесспорно». Ссылки на «отцов Форта». Отсылки к Кнуту, Танненбауму, Дейкстре. Попытки без углубления в вопрос принять результаты любой деятельности «отцов» - ColorForth, SeaForth, бектрекинг, апеллируя только к авторитетности источника.

4. После Средневековья наступило Новое время. Зарождение и расцвет практической науки. Ньютон, Паскаль, Лейбниц, а из философов – Бэкон и Декарт, заложившие основы современного научного познания. Наука стала основываться на эксперименте, а исследование – на сопоставлении и анализе результатов (Бэкон) и интуитивном озарении, подтверждаемом реальными следствиями (Декарт). Кстати, эти философы совершенно нехарактерно соглашались друг с другом, а сами подходы соответствуют широко известным «снизу вверх» и «сверху вниз». В то же Новое Время появились многие современные физические величины. К примеру, «лошадиная сила», по свидетельствам, была создана, когда Джеймс Ватт попробовал продать паровой двигатель на водокачку. Ему был задан вполне конкретный вопрос «сколько лошадей я перестану кормить, если куплю ваш двигатель?», в результате чего были проведены испытания двигателя и измерение его мощности «в лошадях».

Как это проявляется в Форте. Это позиция «а у меня работает». Надо сказать, что как методические основы, заложенные в Новое Время, сохраняют работоспособность, так и аргумент «а у меня работает» имеет определенные основания. На определенном уровне его достаточно, потому что оно же и в самом деле работает. Некоторые проблемы возникают с распространением, которое далеко не гарантировано. Появляются робкие аргументы вида «ну может быть если мы умножим нашу экономию в один такт на десять лет работы и тысячу работающих программ», однако реальные наблюдения показывают, что из-за такой экономии полученный Форт вовсе не начинает распространяться со скоростью лесного пожара.

5. Проблемы с «оно работает» начались в XIX веке. Развитие науки привело к тому, что одни и те же явления стали объясняться различными, часто взаимоисключающими способами. И главное, что все они «работали». Частично противоречия удавалось разрешать экспериментально (например, корпускулярная и волновая теории света давали противоположные предсказания, но эксперименты показали, что прав Френель). Однако интересы ученых были настолько разносторонни, а мысль проникала так далеко, что ставить эксперименты было иногда невозможно или слишком затратно. Возникло философское направление позитивизма – «а давайте теории верифицировать (т.е. проверять)». Отлично. А как проверять? Мгновенно обнаружилась «дурная бесконечность» - сначала надо верифицировать метод проверки… а может быть его верификация ошибочна, тогда надо сначала верифицировать верификатор.

Как это проявляется в Форте. Очевидным способом – давайте спроектируем «правильный Форт». Или же «давайте напишем для Форта оптимизатор», что само по себе методически опасно тем, что оптимизация подразумевает формулирование критериев. Очень быстро – не эквивалент оптимальности. Может быть оптимизация по скорости работы, по размеру программы, по скорости разработки (тут скорость работы самой программы может быть как раз небольшой), по трудоемкости, по стоимости сопровождения, по интегральным показателям и т.д. Ситуация аналогична позитивистам – несколько сторонников верификации могли придерживаться одинакового подхода, но все равно давать разные ответы на один и тот же вопрос.

6. Критика позитивизма заставила во второй половине XIX века заменить принцип верификации на принцип фальсификации. Теория признавалась рабочей до тех пор, пока не обнаруживался эксперимент, опровергающий ее. Надо сказать, что сейчас мы уже дошли до довольно сложных методологических понятий, и принцип фальсификации легко трансформируется в совершенно некорректную позицию «докажите, что я неправ». В то же время, для работоспособного применения необходимо выполнение целого ряда условий. Новая теория должна соответствовать всем известным экспериментам. Также она должна объяснять, почему существовала старая, а в идеале – сводиться к ней в каких-то условиях (принцип преемственности Бора). Кроме того, простое объяснение экспериментальных данных формирует только гипотезу, а в разряд теорий она переходит только после появления экспериментов, которые ранее не проводились, но были предсказаны. Также необходимо сформулировать ограничения по применимости и указать фальсифицирующий эксперимент. Наконец, существует принцип «доказываются только позитивные утверждения», поэтому никто не обязан на каждый брошенный за пять секунд тезис заниматься развернутым и аргументированным опровержением. Хороший пример – теория относительности. Она объясняет закон сложения скоростей классической механики и сводится к нему при малых скоростях. Различия объясняются тем, что в классической механике просто не ставили эксперименты с большими скоростями, поэтому и не замечали релятивистских поправок. Фальсифицирующий эксперимент – к примеру, эксперимент Майкельсона-Морли. Если бы он завершился успешно, был бы обнаружен эфир. Но эфир не обнаружен, поэтому пользуемся формулами релятивистской механики.

Как это проявляется в Форте. Уже довольно сложно указать на очевидную неправильность, поскольку сам по себе подход довольно здравый и рабочий. Однако посмотрим и чуть дальше.

7. Наряду с лентой Мебиуса и котом Шредингера в науке существует также чайник Рассела. Говорят, что есть еще кот Мебиуса, который гуляет сам по себе, но нам интереснее чайник. По Расселу, этот чайник будто бы вращается вокруг Солнца так, что с Земли его не видно. Гравитационных возмущений он тоже не создает, если запустить телескоп на спутнике, то между ним и чайником обязательно обнаружится астероид. Так что убедиться в существовании этого чайника никак не получается. Теперь вопрос. Будем ли мы изучать такой чайник? Можно долго размышлять, на блюдечке ли он, фарфоровый ли, и какой толщины стенки, какой узор и т.д. Что интересно, на это можно потратить большие средства, создать научные школы и организовать их работу в соответствии с правильной методологией – формулированием теорий, их фальсификацией и т.п. Но вот тут и выплывает огромный пункт – актуальность исследований. А если обращаться к классикам марксизма – общественно-историческая значимость. Иными словами, исследовать что-то просто ради исследования – может быть и можно. Только затраченные усилия и полученные результаты будут совершенно несоразмерны, а при этом реально востребованные проблемы решены не будут. В современной науке совершенно четко выдвигаются требования актуальности и новизны, причем актуальность исследования обычно ставится на первое место. Это помогает не тратить время впустую, исследуя правильно и корректно, однако исследуя ненужные вещи.

Как это проявляется в Форте. Здесь уже стоит говорить о непонимании описанной проблемы, потому что сама по себе она не предлагает готового (верифицированного – см. выше) решения. Любой проект, формально грамотный и выполняющийся с применением «правильных» подходов, однако не имеющий четко сформулированной цели, не соответствует критериям актуальности. Например, «когда-нибудь кому-нибудь понадобится». Отсюда же превратившиеся уже в миф «сотни программистов, которые напишут тысячи библиотек». Пока у нас нет конкретной сотни программистов, разговор не имеет практических перспектив.

Что ж, начинаем обсуждать :)
Сообщение Добавлено: Пт фев 24, 2017 17:43

Часовой пояс: UTC + 3 часа [ Летнее время ]


cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB