Автор Тема: Модифицированный синтаксис Оберона  (Прочитано 180398 раз)

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #15 : Январь 04, 2012, 03:52:03 pm »
А зачем убирать подсветку в современных редакторах?

Чтобы выделять цветом (и шрифтом) что-то другое. Идея утопическая в применении к современному массовому производству, но тем не менее - оберонщики за нее держатся и так просто не откажутся.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #16 : Январь 05, 2012, 04:58:49 am »
А зачем убирать подсветку в современных редакторах?

Чтобы выделять цветом (и шрифтом) что-то другое. Идея утопическая в применении к современному массовому производству, но тем не менее - оберонщики за нее держатся и так просто не откажутся.

Да-да, они таким способом выделяют смысловые куски кода...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #17 : Январь 05, 2012, 10:30:17 am »
А вот я лично например не очень понимаю зачем нужен капс в ключевых словах и/или подсветка синтаксиса. Это ж до какой степени нужно не знать язык, чтобы требовалось что-то там подсвечивать/выделять капсом?

Единственное что - подсветка чуть-чуть помогает избежать опечаток. Но это должна быть подсветка не просто ключевых слов (в них обычно опечаток нет, а если есть, то они видны сразу), а подсветка более сожных сущностей. Например строковый литералов. Тогда сразу видно что например вместо "foo bar" написал "foo bar'. Или коментариев. Ну и так далее. То есть правильную подсветку должен делать полноценный парсер текста. Причем умный парсер. Никакой капс этого не заменит.

С другой стороны, если у нас есть такой умный парсер, то зачем нам постоянная расцветка синтаксиса? Пусть он лучше ошибки проверяет и подчеркивает неверное красным на лету (или иначе показывает ошибку, но только в том месте где она есть, а не во всем исходнике перманентно).
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #18 : Январь 05, 2012, 10:50:33 am »
А вот я лично например не очень понимаю зачем нужен капс в ключевых словах и/или подсветка синтаксиса. Это ж до какой степени нужно не знать язык, чтобы требовалось что-то там подсвечивать/выделять капсом?

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

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #19 : Январь 05, 2012, 08:38:54 pm »
Выделение нужно для быстрого визуального схватывания кода. В современных редакторах лучше это делать изменением шрифта и цвета, естественно автоматически, самим редактором, в процессе написания кода.
А по моему - не нужно. Спокойно (и довольно много) пишу в nano, и еще больше читаю кода через "cat srcfile | less" без всякой подсветки синтаксиса. Зачем акцентировать мое внимание на ключевых словах? Я ж их и так помню, кроме того - они не важнее других сущностей. Например библиотечных функций высшего порядка (или их эмуляций).

Помню когда писал на java одну относительно сложную вещь, чтобы сосредоточиться отключил в netbeans подсветку синтаксиса вообще. Почему-то подсветка сильно мешала сконцентрироваться на своих абстракциях. А вот с диалектами оберона (Оберон, Оберон-07, Оберон-2, КП) так не получилось бы - там капс ключевых слов зашит в синтаксис языка, и от этого так просто не избавиться.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #20 : Январь 05, 2012, 09:00:27 pm »
Помню когда писал на java одну относительно сложную вещь, чтобы сосредоточиться отключил в netbeans подсветку синтаксиса вообще. Почему-то подсветка сильно мешала сконцентрироваться на своих абстракциях. А вот с диалектами оберона (Оберон, Оберон-07, Оберон-2, КП) так не получилось бы - там капс ключевых слов зашит в синтаксис языка, и от этого так просто не избавиться.
Все акцентирования должны быть на уровне редактора, а не компилятора - тоесть отключаемые и настраиваемые под себя. Кроме того, такие длинные, громоздкие синтаксические конструкции, как array of integer и тд должны отсутстовать - вот это, в основном, и побудило меня открыть тему.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #21 : Январь 05, 2012, 09:01:48 pm »
В Зонноне грубо извратили идею оберона с ооп и с NET, так как Оберон - это сам себе NET.
Гм. С этого места по подробнее. Возможно ты немного заблуждаешься :-) Смотри, если мы говорим про язык программирования "Oberon", то там нет (не требуется и не упоминается в спецификации на язык) следующего:
  • Сборщика мусора
  • Проверки выхода за границы массива
  • Проверки арифметического переполнения (еси в байт записать число 340 - что будет?)
  • Проверки на деление на нуль (12/0 -- что случится?)
  • Метаинформации и методов для получения оной. То есть нет даже рефлекшина.
  • Динамической загрузки и выгрузки модулей
  • Стандартной библиотеки вообще. То есть даже Hello World не написать так, чтобы он стандартно работал везде

По сути Оберон - это Си, в который добавили одиночное наследование для структур + немного rtti для них (run time type information) + работу с указателями вынесли в отдельный модуль SYSTEM, который нужно явно импортировать + чуть строже работают с типами. Но где тут аналог .net'a?

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

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #22 : Январь 05, 2012, 09:03:21 pm »
Да, забыл одну штуку - в Обероне, относительно Си, убрали из стандартной библиотеки и зашили в сам язык функцию выделения памяти на куче. Функции освобождения памяти же в Обероне просто нет.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #23 : Январь 05, 2012, 09:24:00 pm »
Гм. С этого места по подробнее.
Я имел ввиду систему вцелом: КП+ББ или ActiveOberon+BlueBottle.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #24 : Январь 05, 2012, 09:37:40 pm »
Гм. С этого места по подробнее.
Я имел ввиду систему вцелом: КП+ББ или ActiveOberon+BlueBottle.
Ну, тогда наверно стоило уточнить, что предлагается менять синтаксис не Оберона, а КП. Или Active Oberon'a. Они все же весьма отличаются от оберона как синтаксически, так и семантически.

Вообще, к задаче по экспериментированию с синтаксисом можно подойти с двух сторон:
  • Написать препроцессор который будет перегонять с нашего синтаксиса в, скажем, КПшный. Компилировать полученную кашу посредством КП-компилятора.
  • Наваять свою реализацию какого-нибудь оберона с оторваным синтаксисом. Затем уже отдельно придумывать к нему разные синтаксисы и парсеры для них.
При должном развитии по первому пути он неизбежно сведется ко второму, просто кодогенерация будет не в байткод llvm или инструкции целевой архитектуры, а в КПшный код.

PS. Я, кстати, слабо себе представляю как в Зонноне можно было что-то извратить, ведь он изначально делался именно под "систему" .net, в отличае от, скажем КП (КП делался под Java, точнее с оглядкой на Java - есть реализация под jvm - gpcp). Только, как оказалось, КП в среду java/jvm интегрируется плохо, поэтому, чтобы второй раз на те же грабли не наступать, Zonnon сильнее отошел от Оберона, чем КП.

Да, а Оберон (и просто и Оберон-2) вполне себе живет вне всяких систем, взять тот же XDS, или oo2c, или Pow!, или, скажем, Astrobe (актуальный и развивающийся коммерческий проект).
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #25 : Январь 05, 2012, 10:28:27 pm »
Ну, тогда наверно стоило уточнить, что предлагается менять синтаксис не Оберона, а КП. Или Active Oberon'a. Они все же весьма отличаются от оберона как синтаксически, так и семантически.
Да, КП, а значит и Оберон, Оберон2.
Цитировать
Вообще, к задаче по экспериментированию с синтаксисом можно подойти с двух сторон:
  • Написать препроцессор который будет перегонять с нашего синтаксиса в, скажем, КПшный. Компилировать полученную кашу посредством КП-компилятора.
Вот этот вариант наиболее реален для первичных экспериментов.

Цитировать
PS. Я, кстати, слабо себе представляю как в Зонноне можно было что-то извратить, ведь он изначально делался именно под "систему" .net
Мне просто сам NET не нравится. Сугубо имхо. Оберон я рассматриваю именно как альтернативу NET. В идеале для этого нужно, чтобы были некие общие библиотеки для всех Оберонов + возможно Модулы2, Ады ну и пхп, питон.
Скажем будет: PHP.Oberon, PyOberon:)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #26 : Январь 06, 2012, 12:00:06 am »
Ну, тогда наверно стоило уточнить, что предлагается менять синтаксис не Оберона, а КП. Или Active Oberon'a. Они все же весьма отличаются от оберона как синтаксически, так и семантически.
Да, КП, а значит и Оберон, Оберон2.
Ну, если мелкие косметические изменения (очень мелкие), то да. Если же что-то более-менее серьезное, что потребует писать полноценный парсер, то уже сразу нет.

Цитировать
PS. Я, кстати, слабо себе представляю как в Зонноне можно было что-то извратить, ведь он изначально делался именно под "систему" .net
Мне просто сам NET не нравится. Сугубо имхо. Оберон я рассматриваю именно как альтернативу NET. В идеале для этого нужно, чтобы были некие общие библиотеки для всех Оберонов + возможно Модулы2, Ады ну и пхп, питон.
Скажем будет: PHP.Oberon, PyOberon:)
А чем .net не нравится? Ну, то есть я совсем не фанат .net'a, но и не стремлюсь ему аналоги создавать :-)

Также не очень понятно как свести к общему знаменателю Аду и Оберон - скажем в Аде есть generic-модули, в Обероне обобщенки нет вообще. Более того, чтобы скажем в ББ полноценно присутствовал и Оберон и КП, оный ББ придется переписать на их общем знаменателе - Обероне.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #27 : Январь 06, 2012, 04:51:40 am »
С другой стороны, если у нас есть такой умный парсер, то зачем нам постоянная расцветка синтаксиса? Пусть он лучше ошибки проверяет и подчеркивает неверное красным на лету (или иначе показывает ошибку, но только в том месте где она есть, а не во всем исходнике перманентно).

Вы разве забыли главный принцип оберона?

"Инструмент не должен быть умнее своего пользователя!!!111"
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #28 : Январь 06, 2012, 04:55:02 am »
Единственное что - подсветка чуть-чуть помогает избежать опечаток. Но это должна быть подсветка не просто ключевых слов (в них обычно опечаток нет, а если есть, то они видны сразу), а подсветка более сожных сущностей. Например строковый литералов. Тогда сразу видно что например вместо "foo bar" написал "foo bar'. Или коментариев. Ну и так далее. То есть правильную подсветку должен делать полноценный парсер текста. Причем умный парсер. Никакой капс этого не заменит.

Так это умеет делать любой простенький программерский редактор текстов...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #29 : Январь 06, 2012, 04:59:40 am »
Кроме того, такие длинные, громоздкие синтаксические конструкции, как array of integer и тд должны отсутстовать - вот это, в основном, и побудило меня открыть тему.

Вы уж определитесь, для чего Вам нужен язык программирования -- для быстренкого написания простеньких программулек -- запустил и стёр -- или для долговременных проектов, где важна читабельность программ?
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…