Автор Тема: Monkey Language  (Прочитано 27239 раз)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Monkey Language
« Ответ #60 : Ноябрь 20, 2012, 08:50:03 pm »
;D  ;) под винду... и, разумеется, я имею ввиду наитив код...
Какая у тебя фантазия бурная однако! Ну, значит сделаешь dll, фигли. Оно чай от so'шки не сильно отличается (и делать будешь небось какой-нибудь голимой вижуал-штудией).
тык этот "кроссплатформенный" "компилятор" всего лишь транслирует обезьяньи программы в другие ЯП? и мне нужно для получения исполняемого кода знать еще и особенность других языков... нда... вот радости ну прям вагон и тележка...
Ну, в случае js ты исполняемый код получаешь сразу :-) В случае stdcpp бинарь по крайней мере под макосью тоже получаешь сразу, для его генерации оно ясное дело сишный компилятор использует. Но делает это абсолютно прозрачно.

В случае же если тебе хочется странного, то в странном придется немного покопаться :-)

Вообще, я же первым же постом написал что оно именно что транслирует в разные ЯП. И это огромный плюс. И еще более огромный плюс, что результат трансляции вполне себе человекочитаем. Это в общем то ровно то, что мне нужно (если бы оно скажем генерило сразу бинарь под винды/макоси, оно бы мне нахрен было бы не нужно).
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Monkey Language
« Ответ #61 : Ноябрь 20, 2012, 09:25:01 pm »

Ну, в случае js ты исполняемый код получаешь сразу :-) В случае stdcpp бинарь по крайней мере под макосью тоже получаешь сразу, для его генерации оно ясное дело сишный компилятор использует. Но делает это абсолютно прозрачно.

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

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Monkey Language
« Ответ #62 : Ноябрь 20, 2012, 09:32:41 pm »

Ну, в случае js ты исполняемый код получаешь сразу :-) В случае stdcpp бинарь по крайней мере под макосью тоже получаешь сразу, для его генерации оно ясное дело сишный компилятор использует. Но делает это абсолютно прозрачно.

Многие языки используют компиляцию в СИ - тот же Эйфель... - но он честно выдает сообщения об ошибках ИМЕННО в терминах ( конструкций) Эйфеля , а не СИ. так что дурачка решившего... а не приручить мне   простую Макаку  вместо высоСИ = ждет большой облом даже на высокоуровневых задачах - блин , как вводу глядел насчет еще одной какашки..
Оно также выдает ошибки именно на уровне макаки а не Сей, или там Js (на уровне js выдавать ошибки вообще не получится - он же динамически типизированный :-) ). Чтобы после успешной трансляции из макаки в те же си случилась ошибка на уровне компиляции сишного кода в бинарь - такого не бывает (ну или я не видел пока, теоретически, конечно, если разрушить окружение сборки хитрым образом, таки ошибки получить будет возможно, впрочем в Eiffel'е ровно то же самое).
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Monkey Language
« Ответ #63 : Ноябрь 21, 2012, 02:06:16 am »
Оно также выдает ошибки именно на уровне макаки а не Сей, или там Js (на уровне js выдавать ошибки вообще не получится - он же динамически типизированный :-) ). Чтобы после успешной трансляции из макаки в те же си случилась ошибка на уровне компиляции сишного кода в бинарь - такого не бывает (ну или я не видел пока, теоретически, конечно, если разрушить окружение сборки хитрым образом, таки ошибки получить будет возможно, впрочем в Eiffel'е ровно то же самое).
  ;D ;D ;D да нет   - например, когда я делаю "модуль"  состоящий из одних экспортируемых процедур - то, согласно вашим словам, если у меня нет ни одного вызова оных (а с чего бы им взяться?) - транслятор будет халтурить (проверять только соответствие синтаксису)...

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Monkey Language
« Ответ #64 : Ноябрь 21, 2012, 10:29:34 am »
(дурацкий форумный движок)

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Monkey Language
« Ответ #65 : Ноябрь 21, 2012, 10:44:07 am »
Думаю, у этой абиззяны своё видение модуля. Если подпрограмма не используется, то она не попадает в состав скомпилированного модуля. И сигнатура её не попадает. А если обращаться к несуществующим ресурсам модуля, то будет выдаваться стандартная (и правильная) ошибка на конкретной платформе. Всё прозрачно, и никаких подводных камней с сигнатурами быть не должно.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Monkey Language
« Ответ #66 : Ноябрь 21, 2012, 11:07:50 am »
Думаю, у этой абиззяны своё видение модуля. Если подпрограмма не используется, то она не попадает в состав скомпилированного модуля. И сигнатура её не попадает. А если обращаться к несуществующим ресурсам модуля, то будет выдаваться стандартная (и правильная) ошибка на конкретной платформе. Всё прозрачно, и никаких подводных камней с сигнатурами быть не должно.
Да. По сути в этом трансляторе по умолчанию включена обычная, для современных компиляторов, опция "eliminate dead code". Ну и повторю еще один нюанс - модули, по сути, тут есть на этапе компиляции. В рантайме их вроде как нет. Поэтому если хочется либу под конкретной платформой - модули тут не при чем. Либу надо лепить средствами самой этой платформы по сути. Искаропки тулзы этого языка на создание либ не рассчитаны. Но у меня сложилось впечатление, что допилить довольно просто будет.
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Monkey Language
« Ответ #67 : Ноябрь 21, 2012, 11:25:03 am »
Думаю, у этой абиззяны своё видение модуля. Если подпрограмма не используется, то она не попадает в состав скомпилированного модуля. И сигнатура её не попадает. А если обращаться к несуществующим ресурсам модуля, то будет выдаваться стандартная (и правильная) ошибка на конкретной платформе. Всё прозрачно, и никаких подводных камней с сигнатурами быть не должно.
Да. По сути в этом трансляторе по умолчанию включена обычная, для современных компиляторов, опция "eliminate dead code". Ну и повторю еще один нюанс - модули, по сути, тут есть на этапе компиляции. В рантайме их вроде как нет. Поэтому если хочется либу под конкретной платформой - модули тут не при чем. Либу надо лепить средствами самой этой платформы по сути. Искаропки тулзы этого языка на создание либ не рассчитаны. Но у меня сложилось впечатление, что допилить довольно просто будет.
Тогда , Алексей, то паскудство которое они называют модулем... нельзя назвать даже библиотекой... - вот вам и ожидаемая какашка для человека который решил инвестировать свое время  в обьезьяноведение..  Нормальный продукт для этих целей - даже если и не дает компиляцию в наитивный код -предоставляет виртуальную машину.  Но на этом проблемы не закончились - а что там с отладкой?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Monkey Language
« Ответ #68 : Ноябрь 21, 2012, 12:03:16 pm »
Тогда , Алексей, то паскудство которое они называют модулем... нельзя назвать даже библиотекой... - вот вам и ожидаемая какашка для человека который решил инвестировать свое время  в обьезьяноведение..
Да нет. Модуль в общем то ровно тот же что скажем в Модуле или там Обероне.

  Нормальный продукт для этих целей - даже если и не дает компиляцию в наитивный код -предоставляет виртуальную машину.
Для каких, этих? :-)

Но на этом проблемы не закончились - а что там с отладкой?
Смотря для какого target. Для stdcpp - все хорошо.
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Monkey Language
« Ответ #69 : Ноябрь 21, 2012, 12:06:10 pm »
Да нет. Модуль в общем то ровно тот же что скажем в Модуле или там Обероне.
Цитировать
  да разве?  :D

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Monkey Language
« Ответ #70 : Ноябрь 21, 2012, 12:06:56 pm »
Да нет. Модуль в общем то ровно тот же что скажем в Модуле или там Обероне.
Цитировать
  да разве?  :D
Ну да. В каком месте они расходятся вообще?
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Monkey Language
« Ответ #71 : Ноябрь 21, 2012, 12:11:23 pm »
Да нет. Модуль в общем то ровно тот же что скажем в Модуле или там Обероне.
Цитировать
  да разве?  :D
Ну да. В каком месте они расходятся вообще?
в  прямом - если я суну в модуль Оберона или того же Обьектного Паскаля экспортируемую функцию - то при компиляции модуля (а он там и там единица ее) - то она не может исчезнуть из результирующего кода (вне зависимости  тестировал (вызывал) я ее когда -либо или нет).

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Monkey Language
« Ответ #72 : Ноябрь 21, 2012, 12:17:45 pm »
в  прямом - если я суну в модуль Оберона или того же Обьектного Паскаля экспортируемую функцию - то при компиляции модуля (а он там и там единица ее) - то она не может исчезнуть из результирующего кода (вне зависимости  тестировал (вызывал) я ее когда -либо или нет).
Не обязательно:
Цитировать
A module is a collection of declarations of constants, types, variables, and procedures, and a
sequence of statements for the purpose of assigning initial values to the variables. A module
typically constitutes a text that is compilable as a unit.
Таким образом в Обероне модуль может не быть единицей компиляции.

Да, а теперь скажи мне пожалуйста, как мне "отдать заказчику" скомпилированный модуль в единственной на текущий момент промышленной реализации Оберона-07 - Astrobe?
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Monkey Language
« Ответ #73 : Ноябрь 21, 2012, 12:27:03 pm »

Таким образом в Обероне модуль может не быть единицей компиляции.

Да, а теперь скажи мне пожалуйста, как мне "отдать заказчику" скомпилированный модуль в единственной на текущий момент промышленной реализации Оберона-07 - Astrobe?
Astrobe - а что энто за реализация... случайно не та которая не поддерживает нормально работу с числами двойной точности?  ;)  там был список ограничений от стандарта.. который РЕЗКО сужал применимость этой "единственной на текущий момент промышленной реализации Оберона-07 " - но эта разумеется шутка... ОТВЕТ - отдавать ТЕКСТ МОДУЛЯ предварительно прошедший компиляцию - если делаете для заказчика библиотеку,  или конечный продукт..  т.е. вероятнее всего модульности  (как и кое-чего другого) в этом ПОДМНОЖЕСТВЕ  Оберона-07  - НЕТ.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Monkey Language
« Ответ #74 : Ноябрь 21, 2012, 12:44:41 pm »

Таким образом в Обероне модуль может не быть единицей компиляции.

Да, а теперь скажи мне пожалуйста, как мне "отдать заказчику" скомпилированный модуль в единственной на текущий момент промышленной реализации Оберона-07 - Astrobe?
Astrobe - а что энто за реализация... случайно не та которая не поддерживает нормально работу с числами двойной точности?  ;)  там был список ограничений от стандарта.. который РЕЗКО сужал применимость этой "единственной на текущий момент промышленной реализации Оберона-07 " - но эта разумеется шутка... ОТВЕТ - отдавать ТЕКСТ МОДУЛЯ предварительно прошедший компиляцию - если делаете для заказчика библиотеку,  или конечный продукт..  т.е. вероятнее всего модульности  (как и кое-чего другого) в этом ПОДМНОЖЕСТВЕ  Оберона-07  - НЕТ.
Да нет, это не подмножество. Это Оберон-7 с расширениями :-)
Y = λf.(λx.f (x x)) (λx.f (x x))