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

большинство книг либо сишарп либо визуалбэйсик(

начал читать на примерах с сишарпом
сишный синтаксис(

решил поискать реализации оберонов под дотнет, хочу одни и те же примеры прорабатывать на шарпе и обероне
особых требований к среде не ставилось, текстовый редактор + консольный компилятор вполне хватает, но работаю под линуксом (моно и виня установлены)...

какие реализации нашел:

oberon.net
(исторически) в ETH начали разработку компилятора оберона под дотнет с прицелом на реализацию активного оберона. изначально назывался лайтнинг оберон, когда ввели поддержку активных обектов назвали актив оберон. из-за некоторых проблем активности не дореализовали. в итоге вырезали поддержку активностей, урезали до оберон-1 и назвали оберон.нет. опыт активностей перенесли в зоннон. (проект 7/7+ ?)

особенности:
реализация под дотнет 1.0 (скачать), через System.Reflection (источник)
сам реализован на дотнете (работает через моно), вроде не требует виню
исходники есть (не ковырял) (скачать)
есть не решенные проблемы (баги)
не развивается (последний релиз 2003-02-13)

низкоуровнево встраиваться в визуалстудию не может, архитектура компилятора не позволяет (faq)
сред разработки нет
нужно писать программы в текстовом редакторе


запуск в линуксе: работает, но:
1) для запуска и для компиляции (faq) приложений в папке проекта должен быть OBERON.dll
2) пришлось переименовать Obgen.DLL в Obgen.dll и Obscan.DLL в Obscan.dll (в линуксе адреса регистрозависимые)
3) создать запускной фаил ILasm с содержимым (из-за регистрозависимости, компилятор вызывает "ILasm"):
## Код:
```
#!/bin/bash
ilasm $1 $2 $3 $4 $5
```

4) компиляция командой: Oberon.exe HelloWorld.mod


GPCP (Gardens Point Component Pascal)

реализация компонентного паскаля для дотнет и явы. разработан в QUT. статья автора компилятора (тут).
есть книга ("Programming in the .NET environment"), где упоминается про реализацию (тут, стр 383)
рус перевод ("Программирование на платформе .NET"), в электронном виде не нашел (тут)
есть книга от автора компилятора ("Compiling for the .NET Common Language Runtime"), в электронном виде не нашел (тут,тутотрывки есть:12)

особенности:
реализация под дотнет 1.1 и 2.0. (брать тут). через System.Reflection
исходники есть(не ковырял)
не развивается (23-01-2007?)

низкоуровнево встраиваться в визуалстудию не может, архитектура компилятора не позволяет
есть плагины для встраивания в эклипс, визуалстудию 2002 и 2003? (тут)
есть среда разработки CPIde (требует версию под 2.0). бесплатная версия накладывает ограничения на размер исходников (5кб). есть платные версии (стандарт 45$, про 90$). (тут)
можно писать программы в текстовом редакторе

запуск в линуксе:
дотнет версия. запускается с параметром /help нормально. не смог заставить компилировать. подозрение на пролемы с переменной CPROOT. что можно покрутить?
## Код:
```
"Listing:

   1 MODULE Hello;
**** ^ Compiler raised an internal exception
**** Exception: System.NullReferenceException: Object reference not set to an instance of an object
  at GPBinFiles.GPBinFiles.findOnPath (System.Char[] pathName, System.Char[] fileName) [0x00000] 
  at NewSymFileRW.SymFileReader.Parse (IdDesc.BlkId scope) [0x00000] 
  at NewSymFileRW.ImpResScope.ReadThisImport (IdDesc.BlkId imp) [0x00000] 
  at NewSymFileRW.NewSymFileRW.WalkImports (Symbols.ScpSeq& imps, IdDesc.BlkId modI) [0x00000] 
  at CPascalP.CPascalP.ImportList (IdDesc.BlkId modScope) [0x00000] 
  at CPascalP.CPascalP.CPmodule () [0x00000] 
  at CPascalP.CPascalP.Module () [0x00000] 
  at CPascalP.CPascalP.Parse () [0x00000] 
  at CPascal.CPascal.Compile (System.Char[] nam, System.Int32& retVal) [0x00000] 
   2   IMPORT CPmain, Console;
   3 BEGIN
   4   Console.WriteString("Hello CP World"); Console.WriteLn;
   5 END Hello.

There were:  1 error, and No warnings"
```


ява, линукс версия (под яву не сильно интересовало, но попытался). совсем не запускается.
## Код:
```
Exception in thread "main" java.lang.NoClassDefFoundError: CP//
Caused by: java.lang.ClassNotFoundException: CP..
   at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
   at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
Could not find the main class: CP... Program will exit.
```


запуск в винде:
плагин для эклипса не смог заставить работать (пробовал версию эклипса для которой разрабатывался плагин 3.0.0 и 3.0.1). не может создать проект. вроде требуется версия компилятора под яву.

в CPIde должен работать, но не проверял.

если побороть компилятор и плагин, то под линуксом можно было бы использовать явовскую версию под эклипсом либо дотнетовскую в текстовом редакторе.

Zonnon

экспериментальный язык, включивший наработки по активностям и протоколам. компилятор реализуется черезCCI(презентация1,презентация2,презентация3,презентация4,презентация5,статья1,статья2,статья3)

особенности:
реализация под дотнет 2.0 и 3.5. (брать тут). через CCI
исходники не нашел
сообщение о языке и некоторые курсы(тут)
есть
развивается (20-11-2009)

может встраиваться в визуалстудию (через CCI) 2005 или 2008 про (вс платная). в визуалстудию экспресс(бесплатная) встраиваться не умеет. в визуал студию шел(бесплатная) встраиваться не умеет.
есть плагины для встраивания в эклипс (ссылка1,ссылка2,презентация,статья)
есть среда разработки ZonnonBuilder. бесплатная. входит в инсталлятор. (ссылка1,ссылка2)
можно писать программы в текстовом редакторе

запуск в линуксе: работает, но:
1) для запуска откомпилированных приложений в папке проекта должен быть  Zonnon.RTL.dll
2) компиляция командой: zc.exe /quiet /entry:hello hello.znn
3) в экслипс встраивается. скопировать папку в /usr/lib/eclipse/plugins . не забыть права доступа для пользователя разрешить. но работает странно. каждый раз нужно ран-ран указывать новый профиль