Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 03:26

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 536 ]  На страницу Пред.  1 ... 31, 32, 33, 34, 35, 36  След.
Автор Сообщение
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 14:23 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Victor__v писал(а):
SOURCE-ID вообще костыль.
Код:
за счёт поиска нужных слов в контексте

Поподробней, а то не понятно

Ну вспомним тот же Си++. Есть библиотека <iostream>, есть <fstream>.
Пусть у нас будут те же словари iostream и fstream, а там слова типа << >> и другое (для вариаций ввода-вывода).
Если нам надо работать с TIBом, то выделяем вперёд iostream. Если же с конкретным (текущим) файлом, то делаем так, чтобы fstream оказалсь впереди контекста.
И да, если "плюнуть" на TIB, то можно как в UNIX сделать пару консолей)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 14:28 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Эх, я на "перекрёстке" старых и новых идей. Например, есть идея разделить на начальных 3 категории слова таким образом:
1. Низкоуровневые слова
2. Платформо-зависимые и хост-зависимые (от внешней ОС) форт-слова
3. Высокоуровневые слова
Но похоже надо доделать старое (хотя-бы нормальную компиляцию со словарями).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 15:05 
_KROL писал(а):
1. Низкоуровневые слова
2. Платформо-зависимые и хост-зависимые (от внешней ОС) форт-слова
3. Высокоуровневые слова
Все проще - нужны только (2). (1) и (3) добавляются только по мере надобности.

Сунь-Цзы:
Цитата:
Поэтому и говорится: если знаешь его и знаешь себя, сражайся хоть сто раз, опасности не будет; если знаешь себя, а его не знаешь, один раз победишь, другой раз потерпишь поражение; если не знаешь ни себя, ни его, каждый раз, когда будешь сражаться, будешь терпеть поражение.
Ваша армия - это машина, на которой Вы пишете. Противник - задача. Написание FORTH - это лишь тактика боя.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 15:28 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
_KROL писал(а):
Ну вспомним тот же Си++. Есть библиотека <iostream>, есть <fstream>.
Пусть у нас будут те же словари iostream и fstream, а там слова типа << >> и другое (для вариаций ввода-вывода).
Если нам надо работать с TIBом, то выделяем вперёд iostream. Если же с конкретным (текущим) файлом, то делаем так, чтобы fstream оказалсь впереди контекста.
И да, если "плюнуть" на TIB, то можно как в UNIX сделать пару консолей)


Теперь понятней, но не намного.
условным кодом сего действа можешь проиллюстрировать?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 17:11 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Код:
#include <iostream>
#include <strings>
using namespace std;
main()
{
string name;
cout << "Hello! What's you name?";
cin >> name;
fstream fout;
fout.open("output.txt",trunc); // не помню точно, как там создавать файлы. Вроде так.
fout << "Your name is " << name ;
fclose(fout);
}

Код:
: MAIN
DOSIO \ переключаемся на в/в через TIB за счёт функций DOS
<<" Hello! What's you name?"
">> \ ввод строки с консоли
TIB @ #TIB
DOSFIO \ переключаемся на файловый в/в через BUF за счёт функций DOS
FCREATE" output.txt" ( tib tib# flag) ?HALT \ неважно, что я всё примешиваю даже Pascal, это лишь примерный код!
<< \ запись блока по адресу tib размером tib#
DROP
FCLOSE
;

Причём TIB может быть в модуле DOSIO, а BUF, HND и т.д. в DOSFIO.
Т.о.
<< ( addr sz -- flag) \ записать блок информации куда-то
<<" ( -- ) \ записать скомпилированную прежде строку (надо это определение ещё уточнить...)
<<C ( char -- ) \ записать сиивол
>> ( addr maxsz -- ) \ считать блок информации
">> ( -- addr sz ) \ считать строку
C>> ( -- char ) \ считать символ
Где-то так. Необязателен конечно си-подобный стиль написания.
P.s. "DOS" в начале подразумевает, что может быть какой-нибудь BIOSIO или UNIXIO, и т.д.
А вообще, это лишь ещё не развитый подход, требующий внутренней доработки (продуманной организации соответствующего модуля).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 17:51 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Начнём с вопроса.
Зачем это надо?

Код выглядит усложнённым.
Не легче ли
S" WHAT YOU NAME" H-STDOUT WRITE-FILE THROW \ a u handler -- err|0
HERE DUP 100 H-STDIN READ-FILE THROW \ a u handler -- u? err|0
S" OUTPUT.TXT" R/W CREATE-FILE THROW \ a u method -- handler err|0
DUP >R
WRITE-FILE THROW
R> CLOSE-FILE THROW

Если тебе зачем-то надо прочитать консоль при трансляции файла, то это пишется в одно слово.

DOSIO и пр. Это словари? Ежели да, то они должны быть immediate.
К тому же они должны уметь не затирать верхний элемент стека контекста. Тут либо изгаляться, либо модернизировать механизм поиска слов. Тебе оно надо?
Идём дальше. В моём примере и к консоли и файлам используются одни и те же слова.
Далее, можно использовать стандартные слова для доступа к файлам. К примеру, TYPE переопределив в нём переменную на указатель файла/консоли и пр.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 17:51 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Нам 500 лет! с ЮБИЛЕЕМ!
:hey;

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 18:30 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Ну это лишь идея... Спасибо!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 19:35 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
_KROL писал(а):
Ну это лишь идея... Спасибо!

Тут хочется вот что сказать, представь,
играет музыка танцевальная, а ты выходишь, и начинаешь танцевать под другую музыку.
На сколько это будет выглядеть эстетично, красиво, уместно?

Язык, тоже по-своему музыка, и если ты "танцуешь" используя его ритмы, то твои движения выглядят органично, и сами подчеркивают мелодию, а если ты "танцуешь" другую мелодию (другой ритм), то - неуместно или ужасно не эстетично.
Это не значит, что ты не можешь продолжить мелодию, ввести новый ритм и движения, но должен быть вкус, что ли.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 20:28 
_KROL писал(а):
"DOS" в начале подразумевает, что может быть какой-нибудь BIOSIO или UNIXIO, и т.д.

Не валите все в одну кучу. Переключением источников слов занимается не СИМВОЛ (частью которого является WORD) а ОК. Оптимизация им. Баранова&Ноздрунова (по переключению TIB/BLOCK) это уже излишние усложнения, которыми будет смысл заниматься, когда Вы поймете, зачем нужны и СИМВОЛ и ОК по отдельности.
Но, как сказал один наш знакомый, Вы можете продолжать плясать с бубном, пытаясь попасть в такт "общепринятых ритмов".


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 21:34 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
_KROL писал(а):
...
Т.о.
<< ( addr sz -- flag) \ записать блок информации куда-то
>> ( addr maxsz -- ) \ считать блок информации

Интерпритация данных слов встречается в некоторых Форт системах, как сокращение аналогов стандартных слов LSHIFT и RSHIFT


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 22:20 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
mOleg писал(а):
_KROL писал(а):
Ну это лишь идея... Спасибо!

Тут хочется вот что сказать, представь,
играет музыка танцевальная, а ты выходишь, и начинаешь танцевать под другую музыку.
На сколько это будет выглядеть эстетично, красиво, уместно?
Ты ещё моей музыки не слышал)) Поэтому такими стрёмными эксперементами я занимаюсь лишь мысленно ;)
KPG писал(а):
Интерпритация данных слов встречается в некоторых Форт системах, как сокращение аналогов стандартных слов LSHIFT и RSHIFT
Я знаю, даже у меня раньше было так.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср янв 31, 2018 22:23 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Всё! Флудить не буду, и так его тут много.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср фев 07, 2018 16:20 
_KROL писал(а):
Да нет, я не про "детское" программирование)
Именно про него! Взрослое программирование - это умение взрослого инженера скормить свою задачу компьютеру с наименьшими затратами. Взрослое "просто программирование" - без привязки к конкретным инженерным проблемам - оно же системное, предполагает владение математикой и/или электроникой "чуть" более, чем в объеме профильного ВУЗа.

_KROL писал(а):
Всё, теперь понятно как мне лучше и понятнее свой Форт писать.
Опять пугаете? Успокойтесь, т.к. Вам изначально "нечего сказать", а учиться Вы не хотите, то ничего интересного для других Вы никогда не напишете. Обломаетесь и будете, как большинство присутствующих, авторитетно надувать щеки: мол, видел ваш FORTH, писал, ничего особо интересного...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Пн июн 04, 2018 11:38 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
В целом, ФВМ оказывается просто делать на ЯВУ :)
Правда пока только голый скелет.
Вот все доступные у меня (на текущий момент) программе примитивы:
Код:
#define opNum 26

void *Op[opNum] =
{
   nop,
   reset,
   execute,
   branch,
   nbranch, // 5
   drop,
   dup,
   swap,
   to_r,
   from_r, // 10
   load,
   store,
   move,
   compare,
   plus, // 15
   minus,
   multiply,
   divide,
   and,
   or, // 20
   xor,
   neq0,
   lw,
   ulw,
   key, // 25
   emit
};
Что-нибудь скажете? Надо же от чего-то отталкиваться!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 536 ]  На страницу Пред.  1 ... 31, 32, 33, 34, 35, 36  След.

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


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

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