Автор Тема: Компилятор Oberon-07/11 для x86 Windows  (Прочитано 76700 раз)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #30 : Декабрь 12, 2012, 07:54:09 pm »
Мы в данной теме рассматриваем все же стоковый Оберон.
Какой-какой Оберон? о_О
to iterate is human, to recurse, divine

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

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #31 : Декабрь 12, 2012, 08:12:21 pm »
Мы в данной теме рассматриваем все же стоковый Оберон.
Какой-какой Оберон? о_О
Стоковый :-) As is. Искаробочный. Чистый, не порочный, не модифицированный. Имени Вирта.
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #32 : Декабрь 13, 2012, 04:44:54 am »
Стоковый :-) As is. Искаробочный. Чистый, не порочный, не модифицированный. Имени Вирта.
Таких, судя по всему, в природе не существует. Все реализации (даже описанная в этой теме) имеют какие-то отличия от оригинального виртовского языка...
to iterate is human, to recurse, divine

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

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #33 : Декабрь 13, 2012, 10:04:33 am »
Как я заметил, этот компилятор в случае ошибки в коде программы ждёт, когда пользователь нажмёт Enter. Обычно так не делается, и это осложняет использование компилятора с другими редакторами. Нельзя ли убрать такое поведение?

И ещё -- планируется ли версия для линупсов/юнипсов?
to iterate is human, to recurse, divine

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

akron1

  • Jr. Member
  • **
  • Сообщений: 76
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #34 : Декабрь 13, 2012, 03:44:17 pm »
Как я заметил, этот компилятор в случае ошибки в коде программы ждёт, когда пользователь нажмёт Enter. Обычно так не делается, и это осложняет использование компилятора с другими редакторами. Нельзя ли убрать такое поведение?

сделаю

И ещё -- планируется ли версия для линупсов/юнипсов?

а вот в линуксах я совершенно не разбираюсь

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #35 : Декабрь 13, 2012, 03:49:09 pm »
а вот в линуксах я совершенно не разбираюсь
А вот поэтому я и прошу выложить исходники на github, пусть даже они ужасны. Доводить их можно в процессе до нормального состояния. Прямо на github'е и доводить. Так это будет быстрее, и будет хоть какая-то гарантия что оно не повторит судьбу Оберон-07М компилятора.
Y = λf.(λx.f (x x)) (λx.f (x x))

akron1

  • Jr. Member
  • **
  • Сообщений: 76
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #36 : Декабрь 13, 2012, 04:24:13 pm »
а вот в линуксах я совершенно не разбираюсь
А вот поэтому я и прошу выложить исходники на github, пусть даже они ужасны. Доводить их можно в процессе до нормального состояния. Прямо на github'е и доводить. Так это будет быстрее, и будет хоть какая-то гарантия что оно не повторит судьбу Оберон-07М компилятора.

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

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #37 : Декабрь 13, 2012, 04:32:29 pm »
Вобщем-то, исходников мне конечно не жаль и я могу их завтра выложить, но предупреждаю, что у меня весьма плохой стиль: длинные процедуры ~300 строк, большое количество глобальных переменных, невнятные идентификаторы (из-за практически нулевого знания английского) и полное отсутствие комментариев (пишу для себя)

Выкладывай уже, мы все простимпоймем! ;)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #38 : Декабрь 13, 2012, 04:33:30 pm »
akron1, не боги горшки обжигают  ;)

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #39 : Декабрь 13, 2012, 04:40:57 pm »
Вобщем-то, исходников мне конечно не жаль и я могу их завтра выложить, но предупреждаю, что у меня весьма плохой стиль

В то время как профессионалы никак не могут родить 64 бита для ББ, твоя работа заведомо достойна респекта. Выкладывай! :)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #40 : Декабрь 13, 2012, 09:25:34 pm »
Выложу ка я это тут. А то не все скачать могут.
Y = λf.(λx.f (x x)) (λx.f (x x))

akron1

  • Jr. Member
  • **
  • Сообщений: 76
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #41 : Декабрь 14, 2012, 02:26:32 pm »
Как я заметил, этот компилятор в случае ошибки в коде программы ждёт, когда пользователь нажмёт Enter. Обычно так не делается, и это осложняет использование компилятора с другими редакторами. Нельзя ли убрать такое поведение?

сделано

Также исправлено недоразумение с размещением стандартных модулей.

Добавлены исходники компилятора.


valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #42 : Декабрь 14, 2012, 02:44:24 pm »
Как я заметил, этот компилятор в случае ошибки в коде программы ждёт, когда пользователь нажмёт Enter. Обычно так не делается, и это осложняет использование компилятора с другими редакторами. Нельзя ли убрать такое поведение?

сделано

Также исправлено недоразумение с размещением стандартных модулей.

Добавлены исходники компилятора.
Выложил исходники тут: https://github.com/valexey/Oberon-07-11-compiler
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #43 : Декабрь 14, 2012, 04:50:46 pm »
Добавлены исходники компилятора.

А можешь рассказать подробнее о процессе написания "на самом себе"? Какой оригинальный язык был и сколько итераций (промежуточных языков)?

akron1

  • Jr. Member
  • **
  • Сообщений: 76
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #44 : Декабрь 14, 2012, 05:38:30 pm »
Добавлены исходники компилятора.

А можешь рассказать подробнее о процессе написания "на самом себе"? Какой оригинальный язык был и сколько итераций (промежуточных языков)?

Оригинальный язык был XDS Oberon-2. При этом я старался не пользоваться средствами Oberon-2, отсутствующими в Oberon-07. В какой-то момент исходный код был просто переведен на Oberon-07, что было несложно сделать. Также первое время компилятор производил не машинный код, а ассемблерный masm32. Постепенно ассемблерный код был заменен машинным.