Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
_KROL писал(а): Что-нибудь скажете? Надо же от чего-то отталкиваться! В целом это довольно стандартный стартовый набор. Для практической работы интереснее два других аспекта. 1. Как этот Форт взаимодействует с другими программами. Можно ли его подключить к проекту, у которого есть наглядные, красивые и распространенные вещи. Например, самостоятельно рисовать кнопки или реализовывать сеть в Форте - долго, сложно и не приводит к заметному выигрышу. Проще пользоваться готовыми библиотеками, но для этого надо либо к Форту что-то подключить, либо Форт к чему-то подключить. 2. Как Форт взаимодействует с пользователем и окружением сам по себе. Есть только консоль? И всегда только консоль? Как он открывает-закрывает файлы? В целом, эти пункты (и даже один из них) могут быть основанием для того, чтобы еще раз написать "базовый набор слов" самостоятельно.
[quote="_KROL"]Что-нибудь скажете? Надо же от чего-то отталкиваться![/quote] В целом это довольно стандартный стартовый набор.
Для практической работы интереснее два других аспекта. 1. Как этот Форт взаимодействует с другими программами. Можно ли его подключить к проекту, у которого есть наглядные, красивые и распространенные вещи. Например, самостоятельно рисовать кнопки или реализовывать сеть в Форте - долго, сложно и не приводит к заметному выигрышу. Проще пользоваться готовыми библиотеками, но для этого надо либо к Форту что-то подключить, либо Форт к чему-то подключить. 2. Как Форт взаимодействует с пользователем и окружением сам по себе. Есть только консоль? И всегда только консоль? Как он открывает-закрывает файлы? В целом, эти пункты (и даже один из них) могут быть основанием для того, чтобы еще раз написать "базовый набор слов" самостоятельно.
|
|
|
 |
Добавлено: Ср июн 06, 2018 01:16 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
_KROL писал(а): Правда пока только голый скелет. Я не видел пока удачной реализации форта на Си 8(
[quote="_KROL"]Правда пока только голый скелет.[/quote] Я не видел пока удачной реализации форта на Си 8(
|
|
|
 |
Добавлено: Вт июн 05, 2018 17:57 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
В целом, ФВМ оказывается просто делать на ЯВУ  Правда пока только голый скелет. Вот все доступные у меня (на текущий момент) программе примитивы: Код: #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 }; Что-нибудь скажете? Надо же от чего-то отталкиваться!
В целом, ФВМ оказывается просто делать на ЯВУ :) Правда пока только голый скелет. Вот все доступные у меня (на текущий момент) программе примитивы: [code]#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 };[/code]Что-нибудь скажете? Надо же от чего-то отталкиваться!
|
|
|
 |
Добавлено: Пн июн 04, 2018 11:38 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
_KROL писал(а): Да нет, я не про "детское" программирование) Именно про него! Взрослое программирование - это умение взрослого инженера скормить свою задачу компьютеру с наименьшими затратами. Взрослое "просто программирование" - без привязки к конкретным инженерным проблемам - оно же системное, предполагает владение математикой и/или электроникой "чуть" более, чем в объеме профильного ВУЗа. _KROL писал(а): Всё, теперь понятно как мне лучше и понятнее свой Форт писать. Опять пугаете? Успокойтесь, т.к. Вам изначально "нечего сказать", а учиться Вы не хотите, то ничего интересного для других Вы никогда не напишете. Обломаетесь и будете, как большинство присутствующих, авторитетно надувать щеки: мол, видел ваш FORTH, писал, ничего особо интересного...
[quote="_KROL"]Да нет, я не про "детское" программирование)[/quote]Именно про него! Взрослое программирование - это умение взрослого инженера скормить свою задачу компьютеру с наименьшими затратами. Взрослое "просто программирование" - без привязки к конкретным инженерным проблемам - оно же системное, предполагает владение математикой и/или электроникой "чуть" более, чем в объеме профильного ВУЗа.
[quote="_KROL"]Всё, теперь понятно как мне лучше и понятнее свой Форт писать.[/quote]Опять пугаете? Успокойтесь, т.к. Вам изначально "нечего сказать", а учиться Вы не хотите, то ничего интересного для других Вы никогда не напишете. Обломаетесь и будете, как большинство присутствующих, авторитетно надувать щеки: мол, видел ваш FORTH, писал, ничего особо интересного...
|
|
|
 |
Добавлено: Ср фев 07, 2018 16:20 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
Всё! Флудить не буду, и так его тут много.
Всё! Флудить не буду, и так его тут много.
|
|
|
 |
Добавлено: Ср янв 31, 2018 22:23 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
mOleg писал(а): _KROL писал(а): Ну это лишь идея... Спасибо! Тут хочется вот что сказать, представь, играет музыка танцевальная, а ты выходишь, и начинаешь танцевать под другую музыку. На сколько это будет выглядеть эстетично, красиво, уместно? Ты ещё моей музыки не слышал)) Поэтому такими стрёмными эксперементами я занимаюсь лишь мысленно  KPG писал(а): Интерпритация данных слов встречается в некоторых Форт системах, как сокращение аналогов стандартных слов LSHIFT и RSHIFT Я знаю, даже у меня раньше было так.
[quote="mOleg"][quote="_KROL"]Ну это лишь идея... Спасибо![/quote] Тут хочется вот что сказать, представь, играет музыка танцевальная, а ты выходишь, и начинаешь танцевать под другую музыку. На сколько это будет выглядеть эстетично, красиво, уместно?[/quote]Ты ещё моей музыки не слышал)) Поэтому такими стрёмными эксперементами я занимаюсь лишь мысленно ;) [quote="KPG"]Интерпритация данных слов встречается в некоторых Форт системах, как сокращение аналогов стандартных слов LSHIFT и RSHIFT[/quote]Я знаю, даже у меня раньше было так.
|
|
|
 |
Добавлено: Ср янв 31, 2018 22:20 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
_KROL писал(а): ... Т.о. << ( addr sz -- flag) \ записать блок информации куда-то >> ( addr maxsz -- ) \ считать блок информации
Интерпритация данных слов встречается в некоторых Форт системах, как сокращение аналогов стандартных слов LSHIFT и RSHIFT
[quote="_KROL"]... Т.о. << ( addr sz -- flag) \ записать блок информации куда-то >> ( addr maxsz -- ) \ считать блок информации [/quote] Интерпритация данных слов встречается в некоторых Форт системах, как сокращение аналогов стандартных слов LSHIFT и RSHIFT
|
|
|
 |
Добавлено: Ср янв 31, 2018 21:34 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
_KROL писал(а): "DOS" в начале подразумевает, что может быть какой-нибудь BIOSIO или UNIXIO, и т.д. Не валите все в одну кучу. Переключением источников слов занимается не СИМВОЛ (частью которого является WORD) а ОК. Оптимизация им. Баранова&Ноздрунова (по переключению TIB/BLOCK) это уже излишние усложнения, которыми будет смысл заниматься, когда Вы поймете, зачем нужны и СИМВОЛ и ОК по отдельности. Но, как сказал один наш знакомый, Вы можете продолжать плясать с бубном, пытаясь попасть в такт "общепринятых ритмов".
[quote="_KROL"]"DOS" в начале подразумевает, что может быть какой-нибудь BIOSIO или UNIXIO, и т.д.[/quote] Не валите все в одну кучу. Переключением источников слов занимается не СИМВОЛ (частью которого является WORD) а ОК. Оптимизация им. Баранова&Ноздрунова (по переключению TIB/BLOCK) это уже излишние усложнения, которыми будет смысл заниматься, когда Вы поймете, зачем нужны и СИМВОЛ и ОК по отдельности. Но, как сказал один наш знакомый, Вы можете продолжать плясать с бубном, пытаясь попасть в такт "общепринятых ритмов".
|
|
|
 |
Добавлено: Ср янв 31, 2018 20:28 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
_KROL писал(а): Ну это лишь идея... Спасибо! Тут хочется вот что сказать, представь, играет музыка танцевальная, а ты выходишь, и начинаешь танцевать под другую музыку. На сколько это будет выглядеть эстетично, красиво, уместно? Язык, тоже по-своему музыка, и если ты "танцуешь" используя его ритмы, то твои движения выглядят органично, и сами подчеркивают мелодию, а если ты "танцуешь" другую мелодию (другой ритм), то - неуместно или ужасно не эстетично. Это не значит, что ты не можешь продолжить мелодию, ввести новый ритм и движения, но должен быть вкус, что ли.
[quote="_KROL"]Ну это лишь идея... Спасибо![/quote] Тут хочется вот что сказать, представь, играет музыка танцевальная, а ты выходишь, и начинаешь танцевать под другую музыку. На сколько это будет выглядеть эстетично, красиво, уместно?
Язык, тоже по-своему музыка, и если ты "танцуешь" используя его ритмы, то твои движения выглядят органично, и сами подчеркивают мелодию, а если ты "танцуешь" другую мелодию (другой ритм), то - неуместно или ужасно не эстетично. Это не значит, что ты не можешь продолжить мелодию, ввести новый ритм и движения, но должен быть вкус, что ли.
|
|
|
 |
Добавлено: Ср янв 31, 2018 19:35 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
Ну это лишь идея... Спасибо!
Ну это лишь идея... Спасибо!
|
|
|
 |
Добавлено: Ср янв 31, 2018 18:30 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
Нам 500 лет! с ЮБИЛЕЕМ! 
Нам 500 лет! с ЮБИЛЕЕМ! :hey;
|
|
|
 |
Добавлено: Ср янв 31, 2018 17:51 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
Начнём с вопроса. Зачем это надо?
Код выглядит усложнённым. Не легче ли 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 переопределив в нём переменную на указатель файла/консоли и пр.
Начнём с вопроса. Зачем это надо?
Код выглядит усложнённым. Не легче ли 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 переопределив в нём переменную на указатель файла/консоли и пр.
|
|
|
 |
Добавлено: Ср янв 31, 2018 17:51 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
Код: #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, и т.д. А вообще, это лишь ещё не развитый подход, требующий внутренней доработки (продуманной организации соответствующего модуля).
[code]#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); }[/code] [code] : 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 ;[/code] Причём TIB может быть в модуле DOSIO, а BUF, HND и т.д. в DOSFIO. Т.о. << ( addr sz -- flag) \ записать блок информации куда-то <<" ( -- ) \ записать скомпилированную прежде строку (надо это определение ещё уточнить...) <<C ( char -- ) \ записать сиивол >> ( addr maxsz -- ) \ считать блок информации ">> ( -- addr sz ) \ считать строку C>> ( -- char ) \ считать символ Где-то так. Необязателен конечно си-подобный стиль написания. P.s. "DOS" в начале подразумевает, что может быть какой-нибудь BIOSIO или UNIXIO, и т.д. А вообще, это лишь ещё не развитый подход, требующий внутренней доработки (продуманной организации соответствующего модуля).
|
|
|
 |
Добавлено: Ср янв 31, 2018 17:11 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
_KROL писал(а): Ну вспомним тот же Си++. Есть библиотека <iostream>, есть <fstream>. Пусть у нас будут те же словари iostream и fstream, а там слова типа << >> и другое (для вариаций ввода-вывода). Если нам надо работать с TIBом, то выделяем вперёд iostream. Если же с конкретным (текущим) файлом, то делаем так, чтобы fstream оказалсь впереди контекста. И да, если "плюнуть" на TIB, то можно как в UNIX сделать пару консолей) Теперь понятней, но не намного. условным кодом сего действа можешь проиллюстрировать?
[quote="_KROL"] Ну вспомним тот же Си++. Есть библиотека <iostream>, есть <fstream>. Пусть у нас будут те же словари iostream и fstream, а там слова типа << >> и другое (для вариаций ввода-вывода). Если нам надо работать с TIBом, то выделяем вперёд iostream. Если же с конкретным (текущим) файлом, то делаем так, чтобы fstream оказалсь впереди контекста. И да, если "плюнуть" на TIB, то можно как в UNIX сделать пару консолей)[/quote]
Теперь понятней, но не намного. условным кодом сего действа можешь проиллюстрировать?
|
|
|
 |
Добавлено: Ср янв 31, 2018 15:28 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Моя система(_KROL) |
 |
|
_KROL писал(а): 1. Низкоуровневые слова 2. Платформо-зависимые и хост-зависимые (от внешней ОС) форт-слова 3. Высокоуровневые слова Все проще - нужны только (2). (1) и (3) добавляются только по мере надобности. Сунь-Цзы: Цитата: Поэтому и говорится: если знаешь его и знаешь себя, сражайся хоть сто раз, опасности не будет; если знаешь себя, а его не знаешь, один раз победишь, другой раз потерпишь поражение; если не знаешь ни себя, ни его, каждый раз, когда будешь сражаться, будешь терпеть поражение. Ваша армия - это машина, на которой Вы пишете. Противник - задача. Написание FORTH - это лишь тактика боя.
[quote="_KROL"]1. Низкоуровневые слова 2. Платформо-зависимые и хост-зависимые (от внешней ОС) форт-слова 3. Высокоуровневые слова[/quote]Все проще - нужны только (2). (1) и (3) добавляются только по мере надобности.
Сунь-Цзы:[quote]Поэтому и говорится: если знаешь его и знаешь себя, сражайся хоть сто раз, опасности не будет; если знаешь себя, а его не знаешь, один раз победишь, другой раз потерпишь поражение; если не знаешь ни себя, ни его, каждый раз, когда будешь сражаться, будешь терпеть поражение.[/quote]Ваша армия - это машина, на которой Вы пишете. Противник - задача. Написание FORTH - это лишь тактика боя.
|
|
|
 |
Добавлено: Ср янв 31, 2018 15:05 |
|
|
 |
|