Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
KPG писал(а): ... Интересно, а ассемблер тут каким боком?
[quote="KPG"]...[/quote]Интересно, а ассемблер тут каким боком? :D
|
|
|
|
Добавлено: Пн окт 10, 2022 11:16 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
gudleifr писал(а): ArtemKAD писал(а): Сколько лет ждать Smalltalk для AVR? А он почти такой же тупой внутри, как FORTH. И, опять, нас никто не заставляет реализовать его в полном объеме. А, кстати да, посмотрел и позапускал примеры из его продолжателей Squeak и Pharo языков (в рамках Linux Puppy) с запуска и каких то проектов с площадки Github в рамках их IDE сред, (что интересно синтаксис близок Smalltalk) несмотря, что синтаксис Smalltalk близок в чём то Forth, но использовать эти языки и среды в сравнении с возможностями Форт ещё надо посмотреть как лучше. Всё же объектность их немного ортогональна Форт идеям и отодвигается возможность работы с непосредственными байтами памяти Форт. , но, думаю, какие то идеи в понимании Smalltalk полезны в расширении кругозора и вероятно полезны для использования в каком то осмыслении, если нет особого желания в самостоятельном использовании этих языков с их инфраструктурой. На Pharo на Github есть и некоторые проекты и Форт языка. P.S. По Pharo в 2020г. вышли пара электронных книг (одна по визуализации данных, а вторая по использованию AI) - прогнал их через авто-транслятор от google на русский язык для начального ознакомления. По Smalltalk неплохое начальное описание представлено в Карпов В.Э. Объектно-ориентированное программирование. Часть 1. Язык Смолток (на 40 страниц) Здесь какое то описание использование Pharo для IOT на Raspbery pharo-iot-and-raspberryЕсть и такой Бенчмарк Pharo: benchmarksgame pharoЭто сообщение, можно оформить и в отдельный топик, если будет у кого то интерес к осмыслению Smalltalk в рамках использования с Форт. Мой опыт "Smalltalk" закончился на программировании своей реализации редактора FEDN из SPF 2.5 лет 20-ть назад в силу непоборотых аспектов использования "ООП" (утечек памяти и не знания "лучших" практик ООП), но опыт такого программирования даже без глубокого понимания ООП в рамках псевдо Smalltak (на Форт) был интересен и познавателен.
[quote="gudleifr"][quote="ArtemKAD"]Сколько лет ждать Smalltalk для AVR?[/quote]А он почти такой же тупой внутри, как FORTH. И, опять, нас никто не заставляет реализовать его в полном объеме.[/quote] А, кстати да, посмотрел и позапускал примеры из его продолжателей [b]Squeak[/b] и [b]Pharo[/b] языков (в рамках Linux Puppy) с запуска и каких то проектов с площадки Github в рамках их IDE сред, (что интересно синтаксис близок Smalltalk) несмотря, что синтаксис Smalltalk близок в чём то Forth, но использовать эти языки и среды в сравнении с возможностями Форт ещё надо посмотреть как лучше. Всё же объектность их немного ортогональна Форт идеям и отодвигается возможность работы с непосредственными байтами памяти Форт. :), но, думаю, какие то идеи в понимании Smalltalk полезны в расширении кругозора и вероятно полезны для использования в каком то осмыслении, если нет особого желания в самостоятельном использовании этих языков с их инфраструктурой. На Pharo на Github есть и некоторые проекты и Форт языка.
P.S. По Pharo в 2020г. вышли пара электронных книг (одна по визуализации данных, а вторая по использованию AI) - прогнал их через авто-транслятор от google на русский язык для начального ознакомления.
По Smalltalk неплохое начальное описание представлено в [b]Карпов В.Э. Объектно-ориентированное программирование. Часть 1. Язык Смолток[/b] (на 40 страниц)
Здесь какое то описание использование Pharo для IOT на Raspbery [url=http://www.pharoiot.com/installing-pharo-iot-and-raspberry-headless-raspbian/]pharo-iot-and-raspberry[/url]
Есть и такой Бенчмарк Pharo: [url=https://benchmarksgame-team.pages.debian.net/benchmarksgame/measurements/pharo.html]benchmarksgame pharo[/url]
Это сообщение, можно оформить и в отдельный топик, если будет у кого то интерес к осмыслению Smalltalk в рамках использования с Форт.
Мой опыт "Smalltalk" закончился на программировании своей реализации редактора FEDN из SPF 2.5 лет 20-ть назад в силу непоборотых аспектов использования "ООП" (утечек памяти и не знания "лучших" практик ООП), но опыт такого программирования даже без глубокого понимания ООП в рамках псевдо Smalltak (на Форт) был интересен и познавателен.
|
|
|
|
Добавлено: Вт окт 04, 2022 14:25 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
ArtemKAD писал(а): Появилось тут желание для нужд целевой компиляции вместо использования Форт-асма использовать ассемблер стороннего поизводителя. ну, как, дело-то продвинулось?
[quote="ArtemKAD"]Появилось тут желание для нужд целевой компиляции вместо использования Форт-асма использовать ассемблер стороннего поизводителя.[/quote] ну, как, дело-то продвинулось?
|
|
|
|
Добавлено: Сб дек 27, 2014 14:39 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
Ethereal писал(а): forth.exe < source.txt Это обеспечивает ОС. Можно сколько угодно говорить о ее отсутствии, это только вопрос терминологии. Ethereal писал(а): Если [CHAR] ) PARSE вернула строку, которая распространяется до конца входного буфера, то она вообще символа ) не нашла (в противном случае строка хотя бы на сам символ ) до конца буфера не дотягивалась бы). Не нашла. А раз не нашла, то принимаем еще строку по REFILL и продолжаем искать (ить от многострочных комментариев отказываться то не хотим, а значит если начался комментарий по ( , то нужно жевать строки пока не встретим ")" ). Об этом я и говорил. Но, 1) Факт "не нашла" становится известен уже в WORD. 2) Подобный REFILL, очевидно, понадобится во всех подобных (использующих WORD) словах. Поэтому я и предложил засунуть вызов REFILL в WORD.
[quote="Ethereal"]forth.exe < source.txt[/quote]Это обеспечивает ОС. Можно сколько угодно говорить о ее отсутствии, это только вопрос терминологии.
[quote="Ethereal"]Если [CHAR] ) PARSE вернула строку, которая распространяется до конца входного буфера, то она вообще символа ) не нашла (в противном случае строка хотя бы на сам символ ) до конца буфера не дотягивалась бы). Не нашла. А раз не нашла, то принимаем еще строку по REFILL и продолжаем искать (ить от многострочных комментариев отказываться то не хотим, а значит если начался комментарий по ( , то нужно жевать строки пока не встретим ")" ).[/quote]Об этом я и говорил. Но, 1) Факт "не нашла" становится известен уже в WORD. 2) Подобный REFILL, очевидно, понадобится во всех подобных (использующих WORD) словах. Поэтому я и предложил засунуть вызов REFILL в WORD.
|
|
|
|
Добавлено: Сб дек 20, 2014 13:35 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
>Выкинуть! Само понятие "структурной обработки исключительных ситуаций" - бяка. Выкинуто. Точнее данное положение стандарта переистолковано по другому. gudleifr писал(а): У Вас имеем: Код: : ( [CHAR] ) PARSE + TIB >IN @ + = WHILE REFILL 0= UNTIL THEN ; IMMEDIATE Т.е. какая-то хрень: сначала мы запускает WORD, которому пофигу наши "заполнители TIB", а затем сами его заполняем (REFILL). Нет тут никакой хрени. Если [CHAR] ) PARSE вернула строку, которая распространяется до конца входного буфера, то она вообще символа ) не нашла (в противном случае строка хотя бы на сам символ ) до конца буфера не дотягивалась бы). Не нашла. А раз не нашла, то принимаем еще строку по REFILL и продолжаем искать (ить от многострочных комментариев отказываться то не хотим, а значит если начался комментарий по ( , то нужно жевать строки пока не встретим ")" ). А REFILL - это то-же самое, что QUERY TRUE Код: : REFILL \ CORE EXT SOURCE-ID IF FALSE EXIT THEN QUERY TRUE ;
Введено только для реализации стандарта ANSI-Forth во всей полноте. Точнее, чтобы Форт-система забыла про многострочные комментарии при EVALUATE ибо : EVALUATE TRUE TO SOURCE-ID ... FALSE TO SOURCE-ID ;А QUERY - это прием новой строки во входной буфер вплоть до появления CR/LF. : QUERY TIB C/L ACCEPT #TIB ! >IN 0! ; Ну и до кучи : Код: // : ACCEPT ( c-addr +n1 -- +n2 ) // OVER + OVER // BEGIN // KEY DUP >R // CASE // 8 OF // 2 PICK OVER <> IF R@ EMIT SPACE R@ EMIT 1- THEN // ENDOF // 13 OF // RDROP CR NIP SWAP - EXIT // ENDOF // DUP BL U< INVERT // IF // 2DUP <> IF R@ EMIT R@ OVER C! CHAR+ THEN // THEN // ENDCASE // RDROP // AGAIN // ;
>Выкинуть! Само понятие "структурной обработки исключительных ситуаций" - бяка. Выкинуто. Точнее данное положение стандарта переистолковано по другому.
[quote="gudleifr"]У Вас имеем:[code]: ( [CHAR] ) PARSE + TIB >IN @ + = WHILE REFILL 0= UNTIL THEN ; IMMEDIATE[/code] Т.е. какая-то хрень: сначала мы запускает WORD, которому пофигу наши "заполнители TIB", а затем сами его заполняем (REFILL). [/quote] Нет тут никакой хрени. Если [CHAR] ) PARSE вернула строку, которая распространяется до конца входного буфера, то она вообще символа ) не нашла (в противном случае строка хотя бы на сам символ ) до конца буфера не дотягивалась бы). Не нашла. А раз не нашла, то принимаем еще строку по REFILL и продолжаем искать (ить от многострочных комментариев отказываться то не хотим, а значит если начался комментарий по ( , то нужно жевать строки пока не встретим ")" ).
А REFILL - это то-же самое, что QUERY TRUE [code] : REFILL \ CORE EXT SOURCE-ID IF FALSE EXIT THEN QUERY TRUE ; [/code] Введено только для реализации стандарта ANSI-Forth во всей полноте. [i]Точнее, чтобы Форт-система забыла про многострочные комментарии при EVALUATE ибо : EVALUATE TRUE TO SOURCE-ID ... FALSE TO SOURCE-ID ;[/i] А QUERY - это прием новой строки во входной буфер вплоть до появления CR/LF. : QUERY TIB C/L ACCEPT #TIB ! >IN 0! ; Ну и до кучи : [code] // : ACCEPT ( c-addr +n1 -- +n2 ) // OVER + OVER // BEGIN // KEY DUP >R // CASE // 8 OF // 2 PICK OVER <> IF R@ EMIT SPACE R@ EMIT 1- THEN // ENDOF // 13 OF // RDROP CR NIP SWAP - EXIT // ENDOF // DUP BL U< INVERT // IF // 2DUP <> IF R@ EMIT R@ OVER C! CHAR+ THEN // THEN // ENDCASE // RDROP // AGAIN // ; [/code]
|
|
|
|
Добавлено: Сб дек 20, 2014 11:41 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
gudleifr писал(а): Попробую по-порядку: в DOS-версиях FOBOS я тупо вводил с консоли по INT 21(0A), понятно, если комментарий не успевал закончиться до конца строки, это было его проблемой (но кто будет вводить с консоли комментарии?). В качестве "дисковой памяти" использовал блоки, очевидно, т.к. блок читался в память целиком, проблемы "конца строки" у него не было.
В Win-версии я считываю в память весь файл целиком - т.к. он играет роль исключительно загрузочную. А в Win-приложениях ввод идет через органы управления - там свои прибабахи. Т.е. опять, концы строк - это обычные пробелы.
Это вопрос исповедуемой идеологии. У вас клавиатура - это одно, а файл это другое. Я же исповедую идеологию, взятую от RT-11 и от Unix, кстати и под MS-DOS она есть, только несколько в убогом виде. Есть понятие поток - stream. Форт принимает поток, который называется "стандартный ввод". А откуда я этот поток физически запущу - с клавиатуры или из файла - это мое дело. Форт одно от другого не различит. Грубо говоря, если я под MS-DOS запушу Форт так forth.exe то он будет принимать с клавиатуры. Если так forth.exe < source.txt то из файла, поскольку я переназначит стандартный ввод на файл. Если Вы пользовались INT 21(0A) , то с чего вы решили, что это был обязательно ввод с консоли ? Это поток "стандартного ввода" и этот стандартный ввод может идти не только с клавиатуры, но и из файла и из другого устройства. Если Вашу систему запустить с переназначением ввода forth.exe < source.txt , то ввод пойдет из файла source.txt , а в нем вполне естественны комментарии. gudleifr писал(а): P.S. Кстати, то, что Вы употребляете слово "файл" свидетельствует о том, что ОС присутствует и не только в виде FORTH-огрызка. Просто она стоит на другом конце Вашей двухмашинной связки, в которй "младший брат" не является вполне самостоятельным. Младший брат не вполне самостоятелен только в процессе сборки приложения и его отладки. После того как приложение собрано старший брат в виде ПК от младшего брата отключается и младший брат работает совершенно самостоятельно. При таком подходе достигаются следующие преимущества. 1.) Мне не надо реализовывать никаких блоков или файловой системы на младшем брате. Только посимвольный ввод и вывод через UART 2.) Я при сборке приложения пользуюсь всеми благами ОС и редактирую исходники в виде файлов на ПК. Подключившись терминальной программой к младшему брату или с клаваитуры им управляю, или скармливаю ему текстовые файлы с ПК, просто переназначая входной поток на файл. 3.) Все, что на младшем брате не нужно после сборки приложения (ОС, шмос), так его там и нет. Все (почти) лишнее после сборки приложения отключается/отсекается. ОС, использовавшаяся до этого, отключается простым отключением кабеля от ПК. Словарь тоже отсекается. Он или в отдельной микросхемке ведется 24c256, тогда когда приложение собрано, микросхемка вынимается из колодки и все, словаря нет, или в хвосте EEPROM и тогда после сборки напоследок этот кусок памяти затирается.
[quote="gudleifr"]Попробую по-порядку: в DOS-версиях FOBOS я тупо вводил с консоли по INT 21(0A), понятно, если комментарий не успевал закончиться до конца строки, это было его проблемой (но кто будет вводить с консоли комментарии?). В качестве "дисковой памяти" использовал блоки, очевидно, т.к. блок читался в память целиком, проблемы "конца строки" у него не было.
В Win-версии я считываю в память весь файл целиком - т.к. он играет роль исключительно загрузочную. А в Win-приложениях ввод идет через органы управления - там свои прибабахи. Т.е. опять, концы строк - это обычные пробелы. [/quote] Это вопрос исповедуемой идеологии. У вас клавиатура - это одно, а файл это другое. Я же исповедую идеологию, взятую от RT-11 и от Unix, кстати и под MS-DOS она есть, только несколько в убогом виде. Есть понятие поток - stream. Форт принимает поток, который называется "стандартный ввод". А откуда я этот поток физически запущу - с клавиатуры или из файла - это мое дело. Форт одно от другого не различит. Грубо говоря, если я под MS-DOS запушу Форт так forth.exe то он будет принимать с клавиатуры. Если так forth.exe < source.txt то из файла, поскольку я переназначит стандартный ввод на файл.
Если Вы пользовались INT 21(0A) , то с чего вы решили, что это был обязательно ввод с консоли ? Это поток "стандартного ввода" и этот стандартный ввод может идти не только с клавиатуры, но и из файла и из другого устройства. Если Вашу систему запустить с переназначением ввода forth.exe < source.txt , то ввод пойдет из файла source.txt , а в нем [b]вполне естественны комментарии[/b]. [quote="gudleifr"]P.S. Кстати, то, что Вы употребляете слово "файл" свидетельствует о том, что ОС присутствует и не только в виде FORTH-огрызка. Просто она стоит на другом конце Вашей двухмашинной связки, в которй "младший брат" не является вполне самостоятельным.[/quote] Младший брат не вполне самостоятелен только в процессе сборки приложения и его отладки. После того как приложение собрано старший брат в виде ПК от младшего брата отключается и младший брат работает совершенно самостоятельно. При таком подходе достигаются следующие преимущества. 1.) Мне не надо реализовывать никаких блоков или файловой системы на младшем брате. Только посимвольный ввод и вывод через UART 2.) Я при сборке приложения пользуюсь всеми благами ОС и редактирую исходники в виде файлов на ПК. Подключившись терминальной программой к младшему брату или с клаваитуры им управляю, или скармливаю ему текстовые файлы с ПК, просто переназначая входной поток на файл. 3.) Все, что на младшем брате не нужно после сборки приложения (ОС, шмос), так его там и нет. Все (почти) лишнее после сборки приложения отключается/отсекается. ОС, использовавшаяся до этого, отключается простым отключением кабеля от ПК. Словарь тоже отсекается. Он или в отдельной микросхемке ведется 24c256, тогда когда приложение собрано, микросхемка вынимается из колодки и все, словаря нет, или в хвосте EEPROM и тогда после сборки напоследок этот кусок памяти затирается.
|
|
|
|
Добавлено: Сб дек 20, 2014 11:14 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
Ethereal писал(а): Вам бы еще талант изъясняться понятно. Что есть... Попробую по-порядку: в DOS-версиях FOBOS я тупо вводил с консоли по INT 21(0A), понятно, если комментарий не успевал закончиться до конца строки, это было его проблемой (но кто будет вводить с консоли комментарии?). В качестве "дисковой памяти" использовал блоки, очевидно, т.к. блок читался в память целиком, проблемы "конца строки" у него не было. В Win-версии я считываю в память весь файл целиком - т.к. он играет роль исключительно загрузочную. А в Win-приложениях ввод идет через органы управления - там свои прибабахи. Т.е. опять, концы строк - это обычные пробелы. Теперь посмотрим общий случай: EXPECT читает порциями. Баранов и Ноздрунов: Код: : INTERPRET ( ->) BEGIN ... WORD ... FIND ... EXECUTE ... AGAIN ; : ФОРТ-СИСТЕМА ( ->) BEGIN QUERY INTERPRET AGAIN ; Т.е. упершись в конец TIB, WORD честно возвращает слово "имя нулевой длины" (которое представляет собой тот же EXIT) и его честно EXECUTE, т.е. работа бесконечного цикла INTERPET прекращается и запускается следующая итерация ФОРТ-СИСТЕМА. Понятно, такое сожрет комментарий только если он влезает целиком. У Вас имеем: Код: : ( [CHAR] ) PARSE + TIB >IN @ + = WHILE REFILL 0= UNTIL THEN ; IMMEDIATE Т.е. какая-то хрень: сначала мы запускает WORD, которому пофигу наши "заполнители TIB", а затем сами его заполняем (REFILL). Если мы так делаем при каждом использовании WORD, то этот REFILL проще туда (в WORD) и засунуть, ведь проверка конца TIB там уже есть. (Т.о. WORD будет выдавать "нулевое слово" только после полного конца ввода). Не будет очевидной реакции на Enter? Это вопрос драйвера клавиатуры. При чтении из файла - пофиг. Ethereal писал(а): Так это тупая цитата из стандарта ANSI-Forth. Выкинуть! Само понятие "структурной обработки исключительных ситуаций" - бяка. Ethereal писал(а): ОС тут даже и работы не найдется. То, что ее делает FORTH, не значит, что ее нет. Он она в большой степени и есть. P.S. Кстати, то, что Вы употребляете слово "файл" свидетельствует о том, что ОС присутствует и не только в виде FORTH-огрызка. Просто она стоит на другом конце Вашей двухмашинной связки, в которй "младший брат" не является вполне самостоятельным.
[quote="Ethereal"]Вам бы еще талант изъясняться понятно.[/quote] Что есть...
Попробую по-порядку: в DOS-версиях FOBOS я тупо вводил с консоли по INT 21(0A), понятно, если комментарий не успевал закончиться до конца строки, это было его проблемой (но кто будет вводить с консоли комментарии?). В качестве "дисковой памяти" использовал блоки, очевидно, т.к. блок читался в память целиком, проблемы "конца строки" у него не было.
В Win-версии я считываю в память весь файл целиком - т.к. он играет роль исключительно загрузочную. А в Win-приложениях ввод идет через органы управления - там свои прибабахи. Т.е. опять, концы строк - это обычные пробелы.
Теперь посмотрим общий случай: EXPECT читает порциями.
Баранов и Ноздрунов: [code] : INTERPRET ( ->) BEGIN ... WORD ... FIND ... EXECUTE ... AGAIN ; : ФОРТ-СИСТЕМА ( ->) BEGIN QUERY INTERPRET AGAIN ;[/code] Т.е. упершись в конец TIB, WORD честно возвращает слово "имя нулевой длины" (которое представляет собой тот же EXIT) и его честно EXECUTE, т.е. работа бесконечного цикла INTERPET прекращается и запускается следующая итерация ФОРТ-СИСТЕМА. Понятно, такое сожрет комментарий только если он влезает целиком.
У Вас имеем:[code]: ( [CHAR] ) PARSE + TIB >IN @ + = WHILE REFILL 0= UNTIL THEN ; IMMEDIATE[/code] Т.е. какая-то хрень: сначала мы запускает WORD, которому пофигу наши "заполнители TIB", а затем сами его заполняем (REFILL). Если мы так делаем при каждом использовании WORD, то этот REFILL проще туда (в WORD) и засунуть, ведь проверка конца TIB там уже есть. (Т.о. WORD будет выдавать "нулевое слово" только после полного конца ввода). Не будет очевидной реакции на Enter? Это вопрос драйвера клавиатуры. При чтении из файла - пофиг. [quote="Ethereal"]Так это тупая цитата из стандарта ANSI-Forth.[/quote]Выкинуть! Само понятие "структурной обработки исключительных ситуаций" - бяка. [quote="Ethereal"]ОС тут даже и работы не найдется.[/quote]То, что ее делает FORTH, не значит, что ее нет. Он она в большой степени и есть.
P.S. Кстати, то, что Вы употребляете слово "файл" свидетельствует о том, что ОС присутствует и не только в виде FORTH-огрызка. Просто она стоит на другом конце Вашей двухмашинной связки, в которй "младший брат" не является вполне самостоятельным.
|
|
|
|
Добавлено: Пт дек 19, 2014 19:20 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
gudleifr писал(а): Для этого не нужно никаких исключений.
Вам бы еще талант изъясняться понятно. Про какие исключения в этой фразе идет речь ? Вы про это что-ли ? \ Исключительная ситуация возникает, если длина извлеченной строки \ больше максимальной длины строки со счетчиком.Так это тупая цитата из стандарта ANSI-Forth. Тут имеется ввиду не столько исключительная ситуация, сколько неверный результат. В моей реализации длина строки, извлекаемой по WORD, всегда усекается до максимум 31-го символа. Никакого исключения при этом не происходит. gudleifr писал(а): Мы с Вам опять вернулись к началу: от "никакой операционной системы" - к обработке исключений, буферизации и прочим полезным мелочам, которые ее и составляют. Форт сам обрабатывает свои исключения, выкидываемые словом THROW, и сам входную строку буферизирует. ОС тут даже и работы не найдется.
[quote="gudleifr"]Для этого не нужно никаких исключений. [/quote]Вам бы еще талант изъясняться понятно. Про какие исключения в этой фразе идет речь ? Вы про это что-ли ? [i]\ Исключительная ситуация возникает, если длина извлеченной строки \ больше максимальной длины строки со счетчиком.[/i] Так это тупая цитата из стандарта ANSI-Forth. Тут имеется ввиду не столько исключительная ситуация, сколько неверный результат. В моей реализации длина строки, извлекаемой по WORD, всегда усекается до максимум 31-го символа. Никакого исключения при этом не происходит. [quote="gudleifr"]Мы с Вам опять вернулись к началу: от "никакой операционной системы" - к обработке исключений, буферизации и прочим полезным мелочам, которые ее и составляют.[/quote]Форт сам обрабатывает свои исключения, выкидываемые словом THROW, и сам входную строку буферизирует. ОС тут даже и работы не найдется.
|
|
|
|
Добавлено: Пт дек 19, 2014 18:34 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
Ethereal писал(а): При этом в файлах встречаются многострочные комментарии и система их игнорирует. Для этого не нужно никаких исключений. Мы с Вам опять вернулись к началу: от "никакой операционной системы" - к обработке исключений, буферизации и прочим полезным мелочам, которые ее и составляют.
[quote="Ethereal"]При этом в файлах встречаются многострочные комментарии и система их игнорирует.[/quote]Для этого не нужно никаких исключений.
Мы с Вам опять вернулись к началу: от "никакой операционной системы" - к обработке исключений, буферизации и прочим полезным мелочам, которые ее и составляют.
|
|
|
|
Добавлено: Пт дек 19, 2014 18:17 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
gudleifr писал(а): Вводить игнорируемый комментарий с консоли? Да Вы, батенька, извращенец. А из файла все прекрасно читается и без исключений. По моему извращение не иметь возможности распечатывать текстовые файлы на консоль. Не руками же их все время набирать. Связь со встроенной системой от ПК по UART, то есть через консоль. Встроенная система собственного доступа к файлам на ПК не имеет. Иногда работаешь с этой системой пальчиками через клавиатуру, а иногда копируешь готовые текстовые файлы на консоль и они улетают встроенной системе, точно также, как если бы ты их набрал с клавиатуры. При этом в файлах встречаются многострочные комментарии и система их игнорирует. P.S. Во встроенной системе ОС нет.
[quote="gudleifr"]Вводить игнорируемый комментарий с консоли? Да Вы, батенька, извращенец. А из файла все прекрасно читается и без исключений.[/quote]По моему извращение не иметь возможности распечатывать текстовые файлы на консоль. Не руками же их все время набирать. Связь со встроенной системой от ПК по UART, то есть через консоль. Встроенная система собственного доступа к файлам на ПК не имеет. Иногда работаешь с этой системой пальчиками через клавиатуру, а иногда копируешь готовые текстовые файлы на консоль и они улетают встроенной системе, точно также, как если бы ты их набрал с клавиатуры. При этом в файлах встречаются многострочные комментарии и система их игнорирует.
P.S. Во встроенной системе ОС нет.
|
|
|
|
Добавлено: Пт дек 19, 2014 18:13 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
Ethereal писал(а): \ ." ABORT" ( .( залепить на ассемблере ? Они прекрасно работают с WORD. Напомню изначальная ошибка состояла в том, что выражение пустого комментария Код: ( ) вдруг оказалось работающим неправильно (закрывающая скобка распознавалась как ведущая). Дыру заткнули PARSE. Однако, как писал выше, проще исправить WORD. Я встречал в своей практике требование "пропустить не-пробелы" не более двух раз. Ethereal писал(а): Кроме многострочных комментариев по слову ( Вводить игнорируемый комментарий с консоли? Да Вы, батенька, извращенец. А из файла все прекрасно читается и без исключений. P.S. По сути, это ответ на Ваш вопрос: "Зачем нужна операционная система?"
[quote="Ethereal"] \ ." ABORT" ( .( залепить на ассемблере ?[/quote]Они прекрасно работают с WORD. Напомню изначальная ошибка состояла в том, что выражение пустого комментария [code]( )[/code] вдруг оказалось работающим неправильно (закрывающая скобка распознавалась как ведущая). Дыру заткнули PARSE. Однако, как писал выше, проще исправить WORD. Я встречал в своей практике требование "пропустить не-пробелы" не более двух раз. [quote="Ethereal"]Кроме многострочных комментариев по слову ([/quote]Вводить игнорируемый комментарий с консоли? Да Вы, батенька, извращенец. А из файла все прекрасно читается и без исключений.
P.S. По сути, это ответ на Ваш вопрос: "Зачем нужна операционная система?"
|
|
|
|
Добавлено: Пт дек 19, 2014 18:00 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
gudleifr писал(а): И зачем исключение, если конец строки по жизни обрабатывается штатно? Кроме многострочных комментариев по слову (
[quote="gudleifr"]И зачем исключение, если конец строки по жизни обрабатывается штатно?[/quote]Кроме многострочных комментариев по слову (
|
|
|
|
Добавлено: Пт дек 19, 2014 17:54 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
gudleifr писал(а): Ethereal писал(а): PARSE идет с пользой в реализацию слов Я и говорю: дурость. Проще исправить изначальную ошибку в WORD: пропускать ведущие пробельные символы только если введен пробел. И 5 слов \ ." ABORT" ( .( залепить на ассемблере ?
[quote="gudleifr"][quote="Ethereal"]PARSE идет с пользой в реализацию слов[/quote]Я и говорю: дурость. Проще исправить изначальную ошибку в WORD: пропускать ведущие пробельные символы только если введен пробел.[/quote]И 5 слов \ ." ABORT" ( .( залепить на ассемблере ?
|
|
|
|
Добавлено: Пт дек 19, 2014 17:52 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
gudleifr писал(а): Кстати, не увидел в Вашем листинге (пропустил?) расширения списка искомых символов в случае пробела (до всех пробельных).
Вот только во встроенной системе дополнительной обработки табуляции, как тоже пробела, нам и не хватало. Ну вот не могли мы без нее прожить.
[quote="gudleifr"]Кстати, не увидел в Вашем листинге (пропустил?) расширения списка искомых символов в случае пробела (до всех пробельных). [/quote]Вот только во встроенной системе дополнительной обработки табуляции, как тоже пробела, нам и не хватало. Ну вот не могли мы без нее прожить.
|
|
|
|
Добавлено: Пт дек 19, 2014 17:50 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-транслятор в Ассемблер |
|
|
Ethereal писал(а): PARSE идет с пользой в реализацию слов Я и говорю: дурость. Проще исправить изначальную ошибку в WORD: пропускать ведущие пробельные символы только если введен пробел.
[quote="Ethereal"]PARSE идет с пользой в реализацию слов[/quote]Я и говорю: дурость. Проще исправить изначальную ошибку в WORD: пропускать ведущие пробельные символы только если введен пробел.
|
|
|
|
Добавлено: Пт дек 19, 2014 17:48 |
|
|
|
|