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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 7  След.
Автор Сообщение
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 01:13 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Ну, это-то понятно. Добавление в программу интерпретатора, с той или иной целью - вещь обычная. Да и как альтернатива ООП, проблемно-ориентированный язык вполне себе альтернатива. Правда, как Вы правильно подметили, не хотелось бы и преимущества D потерять.

Это "вид снизу". А вот каков "вид сверху"? Ведь программист может обосновать выбор языка тем, что в языке, например, поддерживается нужный ему виджет. А его поправят в том смысле, что нужен не виджет, а функция программы, а виджет - это уже удобство программиста.

gudleifr писал(а):
В Вашем примере, вероятно, критично, чтобы вызванная процедура знала "адрес вызвавшей процедуры" (отсчитывая смещения на стеке), чтобы было возможно выполнить, например, EXIT.

Все проще. Компилятор считает ошибкой, если переданный указатель имеет другой тип. А если принудительно привести тип, то из-за различия пролога/эпилога программа развалится - явно указанный тип void() ничего возвращать не должен, а функция другого формата может сначала поместить что-то на стек поверх адреса возврата.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 01:28 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:01, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 01:39 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
А, по-моему, наоборот, "сверху" - это способ победить сложность программы (ООП, язык), а подключение потребных библиотек - это "снизу".

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

gudleifr писал(а):
В Вашем фрагменте это не используется, т.к. тип приводится принудительно.

Так он от int приводится, а не от другого указателя.
gudleifr писал(а):
Нет. Тип возвращаемого значения не влияет на стек, в число параметров - сколько добавили, столько и убавили. В Си, в отличие, от Паскаля стек чистит вызывающая процедура, т.е. она корректно очистит стек от положенных ею же параметров, независимо от того, совпадает ли это с чаяниями функции. Ошибка будет только при считывании ф-ей недостающих параметров со стека.

Хорошая теория. Мне скриншоты приводить, что ли? Можно подумать, я не проверял варианты. Программа разваливается. Точка. Есть рабочий код, который позволяет смешивать функции разного формата? Прошу его сюда, всем будет полезно. Только не RTFM, и не "вот как-то так", я хочу видеть рабочий проверенный код. А пока что проверенный код есть у меня, и он показывает, что когда void() - оно работает, а когда void() и int() - оно вылетает. Возможно, это и можно победить, комбинируя pragma, но это ставит работоспособность кода в зависимость от инструментального окружения. А его же куда-то встраивать надо.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 09:51 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:01, всего редактировалось 2 раз(а).

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 11:10 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:02, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 11:39 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:02, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 12:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Я уже упоминал, что со всем этим я экспериментировал. В большой сборке есть масса привходящих факторов. Взять хотя бы возможность управлять конвенциями вызова. Си-конвенция и конкретный компилятор не являются неразрывной парой. В итоге оказывается, что собирается и работает такая вещь после выполнения определенных действий, а "взять и подключить" уже не получается. И все ради чего? Ради сомнительного преимущества использовать разные форматы вызова, когда можно обойтись без них? Есть хорошее правило - если "то работает, то не работает", надо считать, что оно не работает.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 12:29 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:02, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 12:38 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
то "то работает, то не работает" скорее относится к Вашим "экспериментам" (и/или ограничениям инструментария).

Разумеется. Я же стараюсь ломать код, а не искать "то самое положение провода, при котором есть контакт". Есть современные реалии - тот же D, та же Visual Studuo. Не просто gcc, а Qt Creator. Ну что ж я сделаю, если большая сборка падает от экспериментов? Предлагаете зачитывать стандарт в микрофон, чтобы компилятор устыдился? :) Я понимаю источник этих проблем и мне не нравится полагаться на то, что параметры всегда сами правильно удалятся. Раз этого не происходит, подход полагаем спорным и не делаем так. Потому что сейчас у нас разные результаты, а у третьего (четвертого, пятого и т.д.) автора будут какие? И где гарантия, что он не попадет в ситуацию, обнаруженную мной?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 12:42 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:02, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 12:52 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Искать ошибки. В данном случае Вам не удалось выяснить, почему именно валится данное преобразование типа. Ставить заплатки без понимания проблемы - это и есть "поиск положения провода".

Стоп! Что именно похоже на заплатку? Я пробую совершенно штатное решение с единообразным форматом функций. Вы утверждали, что это плохо, и можно сделать эффективнее. Этого следует достигать путем отказа от статического контроля, передачей в рантайме указателей на функции с прологом/эпилогом произвольного вида. Это гораздо больше похоже на заплатку.
gudleifr писал(а):
Ваш gcc не смог исполнить этот код?

Он не смог исполнить код Форта. Мы об этом, или о частном случае, когда ошибка не проявилась на первом простом примере?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 13:03 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:03, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 15:29 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Hishnik писал(а):
Что именно похоже на заплатку?
Наложение поверх стандарта домашних правил.


Да ладно! :) В стандарте Си написано "не используйте только void()"? Или там написано "можно принудительно приводить типы функций, при этом любая реализация должна обеспечивать нормальную работу программы при несоответствии типов в рантайме"?

gudleifr писал(а):
Мы начали с простых вещей и давайте не искать ошибки в них, путем включения в огромные конгломераты.

А это не огромный конгломерат, а всего-навсего тот финальный продукт, в котором он должен работать. А то можно посчитать производительность алгоритма на массиве в 10 чисел, и потом удивляться, почему она не масштабируется линейно для десятка гигабайт.

gudleifr писал(а):
Можете доказать, что "целый Форт" рухнул именно из-за несоответствия типа? Найдите связь.

Добавляем сомнительный код - не работает. Убираем сомнительный код - работает. Был бы код не сомнительным, можно было бы грешить на что-то еще.

gudleifr писал(а):
Насколько помню Ваш учебный Си-Форт, если речь о нем, то там были и более серьезные ошибки.

Так напишите более качественный и разъясните, как его писать. Тема-то вполне конкретная. У меня не на код нет времени и не на обсуждение, а вот на эти лавирования между Вашими шпильками. Ошибки, увертки, непонимания основ,... чего там еще? Вы хотя бы понимаете, что у меня ни обиды, ни раздражения на такое ребячество не возникает? А возникает только ощущение "ой, у меня на работе проблемы, никто не слушает, амбиции играют, кого бы поучить, чтобы погреть ЧСВ". По-другому никак? Здесь в горло не вгрызаются, и в подпол не загоняют. Не та ситуация, нет такой конкуренции между фортерами. Что, если тут вытереть о собеседника ноги, то потом можно будет показать работодателю ссылку, и возьмут не его, а Вас? Или после бытового вампиризма веселее работается? Не тот случай. Обсуждать надо недостатки подходов, а не людей. А то все сядут по углам и надуются.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 19:23 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:03, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth на inline asm. Это реально?
СообщениеДобавлено: Пн апр 27, 2015 20:27 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:03, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 7  След.

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


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

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


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

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