Автор Тема: Safe Objective Language  (Прочитано 15088 раз)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Safe Objective Language
« : Декабрь 02, 2012, 03:29:50 pm »
Попалось мне тут нечто:
http://kolmck.net/sf/SOL=IdealSpade4Programmer1.htm

DIzer

  • Гость
Re: Safe Objective Language
« Ответ #1 : Декабрь 02, 2012, 03:52:39 pm »
...Кладов.. знакомая фамилия - это случайно не создатель -КОЛа?

DIzer

  • Гость
Re: Safe Objective Language
« Ответ #2 : Декабрь 02, 2012, 04:12:22 pm »
да.. он.. статья забавная.. стоит однозначно прочитать любителям -языкоделам типа Vartovyj... ,  с самоиронией - одно заковыченное слово "Простой" - в заголовке говорит о многом, ну а результат.. вот простейшая программа от автора - зная что она выводит известное сообщение, язык императивный , модульный - вы можете сказать что здесь к чему.. и для чего (сильно не углубляясь в описание)?
DO: hello MODULE
     IMPORT Windows;
     Msg_OK 'Hello, World!';
 END hello;
я -НЕТ... более того попытка соотнести это хозяйство с описанием ЯП.. вызывает вопросы...

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Safe Objective Language
« Ответ #3 : Декабрь 02, 2012, 04:32:13 pm »
да.. он.. статья забавная.. стоит однозначно прочитать любителям -языкоделам типа Vartovyj... ,  с самоиронией - одно заковыченное слово "Простой" - в заголовке говорит о многом, ну а результат.. вот простейшая программа от автора - зная что она выводит известное сообщение, язык императивный , модульный - вы можете сказать что здесь к чему.. и для чего (сильно не углубляясь в описание)?
DO: hello MODULE
     IMPORT Windows;
     Msg_OK 'Hello, World!';
 END hello;
я -НЕТ... более того попытка соотнести это хозяйство с описанием ЯП.. вызывает вопросы...
Без проблем. Модуль hello который импортирует модуль Windows ну и явно выводится диалоговое окошко с единственной кнопкой OK и надписью "Hello world".

В каком месте тут сложно то? Чуть необычный синтаксис всего лишь - все блоки начинаются с DO.
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Safe Objective Language
« Ответ #4 : Декабрь 02, 2012, 04:41:10 pm »
да.. он.. статья забавная.. стоит однозначно прочитать любителям -языкоделам типа Vartovyj... ,  с самоиронией - одно заковыченное слово "Простой" - в заголовке говорит о многом, ну а результат.. вот простейшая программа от автора - зная что она выводит известное сообщение, язык императивный , модульный - вы можете сказать что здесь к чему.. и для чего (сильно не углубляясь в описание)?
DO: hello MODULE
     IMPORT Windows;
     Msg_OK 'Hello, World!';
 END hello;

я -НЕТ... более того попытка соотнести это хозяйство с описанием ЯП.. вызывает вопросы...
Без проблем. Модуль hello который импортирует модуль Windows ну и явно выводится диалоговое окошко с единственной кнопкой OK и надписью "Hello world".

В каком месте тут сложно то? Чуть необычный синтаксис всего лишь - все блоки начинаются с DO.
экий вы  быстрый... а я вот не понял - в  таком случае каким образом выделяется  ГЛАВНЫЙ модуль (ведь в языке нет структур эквивалентных  programm или main() ) -  но постулируется  куча модификаторов модуля, далее - тянется Windows - зачем?... что такое  Msg_OK - где она обьявлена, или она встроена в ЯП (согласно формальным требованиям - если она в стороннем модуле.. то перед вызовом должен быть квалификатор    Windows!Msg_OK)
http://kolmck.net/sf/SOL%20-%20short%20(but%20not%20very%20short)%20description.htm

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Safe Objective Language
« Ответ #5 : Декабрь 02, 2012, 04:51:07 pm »
экий вы  быстрый... а я вот не понял - в  таком случае каким образом выделяется  ГЛАВНЫЙ модуль (ведь в языке нет структур эквивалентных  programm или main() )
Полагаю что также как в Обероне :-)

-  но постулируется  куча модификаторов модуля, далее - тянется Windows - зачем?... что такое  Msg_OK - где она обьявлена, или она встроена в ЯП (согласно формальным требованиям - если она в стороннем модуле.. то перед вызовом должен быть квалификатор    Windows!Msg_OK)
http://kolmck.net/sf/SOL%20-%20short%20(but%20not%20very%20short)%20description.htm
Очевидно, что это чисто виндовозная штука. Поскольку постулируется кроссплатформенность, то в язык это вшивать не будут, следовательно это сущность из модуля Windows. Ну и очевидно же что явная квалификация происхождения сущности необходимо только в случае неоднозначности. Собственно дока это подтверждает:
Цитировать
Если в области действия оператора импорта в более, чем одном импортируемом модуле имеется требуемое имя, правило для уточнения того, из какого именно модуля объект, единственное: должно быть указано имя модуля в начале составного имени, отделённое от прочей части имени восклицательным знаком. Т.е., в этом случае составное имя имеет вид:
ИмяМодуля!имя_объекта
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Safe Objective Language
« Ответ #6 : Декабрь 02, 2012, 05:02:17 pm »

Полагаю что также как в Обероне :-) ...

Да нет, там сказано, что главный модуль ДОЛЖЕН быть помечен... ну.. и дальше..(приведенные   автором (в примере) обозначения противоречат БАЗОВЫМ постулатам) - думаю вы поняли мою мыслю - либо эта программа не валидная,
либо  в языке куча исключений(возможных трактовок)... - вот это  полное не комильфо...

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Safe Objective Language
« Ответ #7 : Декабрь 02, 2012, 05:07:02 pm »

Полагаю что также как в Обероне :-) ...

Да нет, там сказано, что главный модуль ДОЛЖЕН быть помечен... ну.. и дальше..(приведенные   автором (в примере) обозначения противоречат БАЗОВЫМ постулатам) - думаю вы поняли мою мыслю - либо эта программа не валидная,
либо  в языке куча исключений(возможных трактовок)... - вот это  полное не комильфо...

Да нет, как раз оно:
Цитировать
Для того, чтобы компилятор знал, с чего именно начинается выполнение программы, один из модулей, определённый как главный, указывается компилятору в качестве стартового.
В точности то же самое в Обероне - в опциях КОМПИЛЯТОРА задается где здесь главный модуль, где точка входа. В той же java - ровно то же самое.

В общем, это обычная практика.
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Safe Objective Language
« Ответ #8 : Декабрь 02, 2012, 05:15:29 pm »
....
В общем, это обычная практика.
я знаю это - но в конкретном случае речь шла о примере валидной программы... скажем так в xds  нужно было бы пропихнуть <+main> , - а что по поводу обязательного квалификатора  перед Msg_OK (если конечно это обертка вызова функции winapi)?  ;)

DIzer

  • Гость
Re: Safe Objective Language
« Ответ #9 : Декабрь 02, 2012, 05:25:55 pm »
....
В общем, это обычная практика.
я знаю это - но в конкретном случае речь шла о примере валидной программы... скажем так в xds  нужно было бы пропихнуть <+main> , - а что по поводу обязательного квалификатора  перед Msg_OK (если конечно это обертка вызова функции winapi)?  ;)
хотя... да  принцип вызова  понятен.. как в Делфи... черт.. просто при чтении описания у меня сложилось мнение что должен  использоваться  полный квалификатор - сорри.. нефиг было читать это описание..  ;D

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Safe Objective Language
« Ответ #10 : Декабрь 02, 2012, 05:28:42 pm »
....
В общем, это обычная практика.
я знаю это - но в конкретном случае речь шла о примере валидной программы... скажем так в xds  нужно было бы пропихнуть <+main> ,
Это чисто заморочки/расширизмы xds (которые, вообще говоря, порождают проблемы). В других компиляторах оберона и в других языках в ТЕКСТЕ программы ничего не указывается. Компилятору выдается опция указывающая кто сейчас у нас вождь. Так что в примерах тот hello world абсолютно корректен.

Цитировать
а что по поводу обязательного квалификатора  перед Msg_OK (если конечно это обертка вызова функции winapi)?  ;)

Так я писал же про это уже:
...
Ну и очевидно же что явная квалификация происхождения сущности необходимо только в случае неоднозначности. Собственно дока это подтверждает:
Цитировать
Если в области действия оператора импорта в более, чем одном импортируемом модуле имеется требуемое имя, правило для уточнения того, из какого именно модуля объект, единственное: должно быть указано имя модуля в начале составного имени, отделённое от прочей части имени восклицательным знаком. Т.е., в этом случае составное имя имеет вид:
ИмяМодуля!имя_объекта
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Safe Objective Language
« Ответ #11 : Декабрь 02, 2012, 05:38:11 pm »
согласен!  :)

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Safe Objective Language
« Ответ #12 : Декабрь 02, 2012, 09:14:15 pm »
Несмотря на "дремучесть" в ряде моментов (типа выходов из вложенных циклов и ограничения итераций - хотя хз, может быть, для встроенки такое ограничение от зависания тоже имеет смысл), там накопана "траншея" в правильную сторону - там, где касается указателей и управления памятью.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Safe Objective Language
« Ответ #13 : Декабрь 02, 2012, 09:16:55 pm »
Несмотря на "дремучесть" в ряде моментов (типа выходов из вложенных циклов и ограничения итераций - хотя хз, может быть, для встроенки такое ограничение от зависания тоже имеет смысл),
А можно чутка подробней - что там с ограничениями итераций? (читать этот талмуд я пока не осилил)

там накопана "траншея" в правильную сторону - там, где касается указателей и управления памятью.
То есть стоит таки распечатать и покурить этот мануал?
Y = λf.(λx.f (x x)) (λx.f (x x))

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Safe Objective Language
« Ответ #14 : Декабрь 02, 2012, 09:23:41 pm »
Там к WHILE приписывается ограничитель максимального числа итераций. Типа, "защита от зависания" для встроенки.
Так же защита от глубины рекурсии :)

Я пробежал "талмуд" за 20 минут, отметил корреляции со своим пониманием в плане управления памятью.