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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - Что такое форматированный вывод и какой может быть в FORTH'е
Автор Сообщение
  Заголовок сообщения:  Re: Re:  Ответить с цитатой
HughAguilar писал(а):
Here are some examples:
Код:
123456789123456.789e  ok F:-1
fdup engineering type 123.45679e12  ok F:-1
fdup scientific  type 1.2345679e14  ok F:-1

1234.56789e engineering type 1.2345679e3  ok
123.456789e engineering type 123.45679  ok
12.3456789e engineering type 12.345679  ok
1.23456789e engineering type 1.2345679  ok
.123456789e engineering type 123.45679e-3  ok
.0123456789e engineering type 12.345679e-3  ok
.00123456789e engineering type 1.2345679e-3  ok
.000123456789e engineering type 123.45679e-6  ok

2000000000.0001e  ok F:-1
eng type 2,000,000,000.0001 ok
2000000001.0001e  ok F:-1
eng type 2e9  ok
2000000000.000123456789e  ok F:-1
eng type 7,751,640.03949188 ok       \ this is a bug in VFX --- F. doesn't work either
2000000000.0001e  ok F:-1
eng type 2,000,000,000.0001 ok
2000000.0001234567e  ok F:-1
eng type 2,000,000.00012346 ok
0.0e  ok F:-1
eng type 0  ok
-0.0e  ok F:-1
eng type 0  ok
-0.0001e  ok F:-1
eng type -100e-6  ok


When I quote my post, I get the original text --- when I look at it on the forum though, I see my code translated into Russian and back into English, so it is all nonsense.

I would have expected a CODE section to be left verbatim.
Сообщение Добавлено: Пн дек 19, 2016 22:25
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
HughAguilar писал(а):
so, why do the C programmers say that Forth is an interpreted language when C is actually interpreted?

:))

I like anoter way
ONLY FORTH
ALSO NUMBERS
...
but, may be ALSO DECIMAL some funny?

anyway, NUMBERS - is vocabulary

description
Сообщение Добавлено: Пн дек 19, 2016 18:54
  Заголовок сообщения:  Re:  Ответить с цитатой
вопрос писал(а):
Как это сделано, например в С
Я думаю, все хорошо знают, как это сделано в С
Стандартный пример из Керниган, Ричи. Язык C

Цитата:
7.3. Форматный вывод - функция PRINTF


I didn't read all of this thread. I just noticed this mention of C's PRINTF function.

I have always considered PRINTF to be a bad idea --- this is essentially a miniature language that is being interpreted at run-time --- so, why do the C programmers say that Forth is an interpreted language when C is actually interpreted?

Quite a lot can be done with <# # #> etc. --- and, this compiles into machine-code --- it is not a mark-up language that gets interpreted at run-time like the PRINTF uses.

The subject of formatted output of floating-point numbers was recently discussed on comp.lang.forth:
https://groups.google.com/forum/#!topic ... GAKvs8baQk
For many years, my novice package has supported the output of floating point in both scientific and engineering formats. Here are some examples:
Код:
123456789123456.789e  ok F:-1
fdup engineering type 123.45679e12  ok F:-1
fdup scientific  type 1.2345679e14  ok F:-1

1234.56789e engineering type 1.2345679e3  ok
123.456789e engineering type 123.45679  ok
12.3456789e engineering type 12.345679  ok
1.23456789e engineering type 1.2345679  ok
.123456789e engineering type 123.45679e-3  ok
.0123456789e engineering type 12.345679e-3  ok
.00123456789e engineering type 1.2345679e-3  ok
.000123456789e engineering type 123.45679e-6  ok

2000000000.0001e  ok F:-1
eng type 2,000,000,000.0001 ok
2000000001.0001e  ok F:-1
eng type 2e9  ok
2000000000.000123456789e  ok F:-1
eng type 7,751,640.03949188 ok       \ this is a bug in VFX --- F. doesn't work either
2000000000.0001e  ok F:-1
eng type 2,000,000,000.0001 ok
2000000.0001234567e  ok F:-1
eng type 2,000,000.00012346 ok
0.0e  ok F:-1
eng type 0  ok
-0.0e  ok F:-1
eng type 0  ok
-0.0001e  ok F:-1
eng type -100e-6  ok


I also have, in my STRING-STACK.4TH package, code to convert strings into numbers.

This is the documentation:
Код:
\ STR>INT converts strings to integers, either singles and doubles.
\ An integer is a string of digits. There may be commas throughout.
\ An integer may have a $ # or % at the front, signifying that it is hexadecimal, decimal or binary. If none of these are present, then BASE is used.
\ An integer may have a + or - at the front (after the base signifier if there is one), signifying non-negative or negative, but otherwise it is non-negative.
\ A comma at the beginning (after the sign signifier if there is one) signifies that the integer is a double, but otherwise it is a single.

\ These are valid integers:
\ $-,123,456        double: -123456 hexadecimal
\ -,123,456         double: -123456
\ ,123,456          double: 123456
\ 123,456           single: 123456

\ STR>FLT converts strings to floats.
\ A float is a string of digits. There may be commas throughout. All floats are in decimal.
\ A comma in the front is legal but should not be used as STR>NUM will interpret this as an invalid double.
\ There must be either a decimal-point or an exponent-signifier (either 'E' or 'e') or both.
\ If there is a decimal-point, there must be digits either before or after or both.
\ The first digits are the integer part. The digits after the decimal-point, if there is a decimal-point, are the fraction part.
\ The digits after the exponent-signifier, if there is an exponent-signifier, are the exponent part (scientific notation).
\ If there is an exponent-signifier, there must be digits after it.
\ An exponent may have a + or - at the front, signifying non-negative or negative, but otherwise it is non-negative.

\ STR>NUM converts strings to either integers or floats.

\ These are valid floats:
\ -123,456.78       float: -123456.78
\ -123,456.78E4     float: -1234567800
\ -123,456.78E-4    float: -12.345678
\ 123E4             float: 1230000
Сообщение Добавлено: Пн дек 19, 2016 09:11
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
Ethereal писал(а):
вопрос писал(а):
10 BASE !

Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!!
Пиши вместо неё DECIMAL

ой, это надо в другую рубрику, там где про "фортеры шутят" 8)
Сообщение Добавлено: Вс июл 03, 2011 09:37
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
Ethereal писал(а):
Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!!Пиши вместо неё DECIMAL

я был ещё очень начинающим, как всё-таки относительно "Алгоритмическая ниша?"
Сообщение Добавлено: Вс июл 03, 2011 00:13
  Заголовок сообщения:  Re:  Ответить с цитатой
вопрос писал(а):
10 BASE !
Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!!
Пиши вместо неё DECIMAL
Сообщение Добавлено: Вс июл 03, 2011 00:06
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
Цитата:
Форт - это-же готовый отладчик, зачем улучшать там, где все средства отладки уже есть ? Ставишь бряк-пойнт где надо и потом разглядываешь что интересует. В Си ничего подобного нет. Там отладка кроме вывода промежуточных значений только отдельным отладчиком и в кодах процессора.

Вот недурно бы рассказать о дополнительных возможностях тем, кто не видит смысла в
Алгоритмическая ниша?
Ethereal писал(а):
Вот как-то делается отладка легко и просто без форматного вывода.

дело вкуса, не спорю, мне помогал даже этот незаконченный форматный вывод довольно неслабо при отладке (ещё добавил в него цветность и окна подобно как в борланде было)
Сообщение Добавлено: Сб июл 02, 2011 23:56
  Заголовок сообщения:  Re:  Ответить с цитатой
вопрос писал(а):
Насчёт изучения - так отладка в С при изучении всё-равно была быстрее намного чем при изучении форта - за счёт наличия стандартных возможностей, которые в форте кто-то поленился сделать

:shock:
вопрос писал(а):
стандартизированные средства вывода в различных форматах с сопровождающим комментарием, причём - перемещаемо, т.к. одна строка и т.д.

В каком смысле здесь употреблено слово перемещаемо ?
Легко перемещаемо вверх-вниз по тексту программы ?
Дык а разве твой любимый редактор не позволяет гонять вверх-вниз целые блоки теста ?
В редакторе FAR-а такие перемещения делаются молниеносно : Shift-стрелки/Home/End Del курсор_на_новое_место Shift-Ins
Например такой кусок для вывода промежуточных значений (переменных XXX и YYY) при отладке :
." DEPTH=" DECIMAL DEPTH . CR
." XXX=" XXX @ .
." YYY=" HEX YYY @ U. CR
гоняешь вверх-вниз по тексту программы и отлаживаешь. Вот как-то делается отладка легко и просто без форматного вывода. А еще можно безо всякого вывода промежуточных результатов просто поставить в форт-программе точку останова
DEPTH . QUIT
после срабатывания которой можно он-лайн (вводя команды с клавиатуры) поразглядывать все интересующие переменные, например
DECIMAL XXX @ .
HEX YYY @ U.
ARRAY 100 DUMP
Форт - это-же готовый отладчик, зачем улучшать там, где все средства отладки уже есть ? Ставишь бряк-пойнт где надо и потом разглядываешь что интересует. В Си ничего подобного нет. Там отладка кроме вывода промежуточных значений только отдельным отладчиком и в кодах процессора.
Сообщение Добавлено: Сб июл 02, 2011 23:24
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
dynamic-wind писал(а):
А хотелось бы иметь комбинатор из левой и правой скобок:

Код:
<" %d " -й тазик содержит: " %f %s ">

ну и в чем проблема?

Кстати, как вариант, можно посмотреть на str5.f
Сообщение Добавлено: Вт май 17, 2011 20:24
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
вопрос писал(а):
я имел ввиду в теме - на второй странице

А мне чё-то показалось, что тема начинается на этой странице. :lol:
Сообщение Добавлено: Вт май 17, 2011 14:02
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
я имел ввиду в теме - на второй странице
Сообщение Добавлено: Вт май 17, 2011 13:10
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
вопрос писал(а):
там выше есть некоторый набросок

expand$ с квадратичным поведением меня особенно порадовал :?
И это не комбинатор.
Сообщение Добавлено: Вт май 17, 2011 12:52
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
там выше есть некоторый набросок
Сообщение Добавлено: Вт май 17, 2011 12:49
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
Можно определить хоть мильён преобразователей величины в строку.
Проблема в их комбинировании, ведь каждое оставляет строку на стеке.
А хотелось бы иметь комбинатор из левой и правой скобок:
Код:
<" %d " -й тазик содержит: " %f %s ">

Целое, действительное и строка снимутся со стека.
На выходе должна быть конкатенация константных строк и строк, выданных отдельными преобразователями %d и др.
Как такое сделать на ф-те?
Сообщение Добавлено: Вт май 17, 2011 12:45
  Заголовок сообщения:  Re: Что такое форматированный вывод и какой может быть в FOR  Ответить с цитатой
вот какой-то очень уж урезанный форматный вывод обнаружил на forth.org.ru
http://spf.cvs.sourceforge.net/spf/deve ... ib/print.f ( :) <- смайлик)
Сообщение Добавлено: Вт май 17, 2011 12:27

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


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