Oberon Community Platform Forum
December 16, 2019, 03:58:09 AM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1] 2
  Print  
Author Topic: Oberon compiler for win32  (Read 25395 times)
Dsar
Newbie
*
Posts: 40


« on: February 08, 2010, 12:14:25 AM »

Hi folks :-)
are there some implementations for Windows of Oberon with the old module behaviour (with module DEFINITION, without the export mark in the implementation)?

Thanks
Logged
Bernhard T.
Administrator
Full Member
*****
Posts: 164


« Reply #1 on: February 08, 2010, 03:00:26 PM »

> old module behaviour (with module DEFINITION,
> without the export mark in the implementation)?

what do you mean?

DEFINITIONs are generated by symbol browsing tools and are means of documentation.

Afaik, DEFINITION MODULES disappeared together with Modula-2 ...

regards
--
   Bernhard
Logged
Dsar
Newbie
*
Posts: 40


« Reply #2 on: February 08, 2010, 04:44:23 PM »

Afaik, DEFINITION MODULES disappeared together with Modula-2 ...
Thanks for the reply :-)
The first proposal of Oberon (in '88) used definition modules, but Wirth in a paper of '89 merged definition and implementation. Ulm's Oberon compiler supports this form, but it's only for Unix :-(

Logged
cfbsoftware
Full Member
***
Posts: 107


WWW
« Reply #3 on: February 10, 2010, 01:27:07 AM »

are there some implementations for Windows of Oberon with the old module behaviour (with module DEFINITION, without the export mark in the implementation)?

Why do you ask?

Excelsior's Native XDS-x86 for Windows contains both Modula-2 and Oberon compilers. All Modula-2 types and corresponding operations can be used in Oberon-2, including enumeration types, range types, records with variant parts, sets, etc.

http://www.excelsior-usa.com/xdsx86.html

Maybe not exactly what you were thinking of but an example given in the help file is:

Code:
    (*MODULA-2*) DEFINITION MODULE UsefulTypes;

    TYPE
      TranslationTable = ARRAY CHAR OF CHAR;
      Color  = (red,green,blue);
      Colors = SET OF Color;

    END UsefulTypes.

    (*OBERON-2*) MODULE UsingM2;

    IMPORT UsefulTypes;

    TYPE
      TranslationTable* = UsefulTypes.TranslationTable;

    VAR colors*: UsefulTypes.Color;

    BEGIN
      colors:=UsefulTypes.Colors{UsefulTypes.red};
    END UsingM2.


Logged

Chris Burrows
Astrobe v7.0 (Feb 2019): Oberon for ARM Cortex-M3, M4 and M7 Microcontrollers
http://www.astrobe.com
Dsar
Newbie
*
Posts: 40


« Reply #4 on: February 16, 2010, 08:57:39 PM »

Why do you ask?
I come from Ada and I was looking for a smaller language, Oberon si great but for me that separation is important

I tried XDS, it's a nasty compiler, for example the main module requires the pragma <*+ MAIN *>. Anyway I tried your solution but mixing oberon and modula-2 is giving to me a lot of trouble :-( or XDS don't make it easy
Logged
cfbsoftware
Full Member
***
Posts: 107


WWW
« Reply #5 on: February 17, 2010, 01:56:23 AM »

I come from Ada and I was looking for a smaller language, Oberon si great but for me that separation is important
OK. The next question is what is it about the separation between the implementation module and the definition module that is important to you? I can think of two possible reasons:

1. If it is from a documentation point of view, as Bernhard has pointed out many Oberon systems have 'browsers' that automatically generate the interface / definition module for you. Once you have become used to this way of working you will never want to go back to the clunky old way of having to manually maintain two separate files. It saves much time in copying / pasting activity and helps to ensure that the human-readable definition module is 'in sync' with the implementation module.

2. In systems which allow linking to 'foreign' dlls, or other code for which you do not have the source or symbol files, there is often a facility provided to use the equivalent of a definition module.

For your next step, I recommend that you try Oberon microsystems' BlackBox Component Builder. The language used, 'Component Pascal', is a small superset of Oberon-2. You can download the complete system from:

http://www.oberon.ch/blackbox.html

To view the 'Definition Module' of any imported module, all you need to do is double-click to select the module name anywhere it appears in the source code of an importing module and then select  'Interface' from the popup menu.

'Interface Modules', used for linking foreign dlls, are described in the 'Platform-Specific Issues' section of the Help file.
« Last Edit: February 17, 2010, 02:01:50 AM by cfbsoftware » Logged

Chris Burrows
Astrobe v7.0 (Feb 2019): Oberon for ARM Cortex-M3, M4 and M7 Microcontrollers
http://www.astrobe.com
BohdanT
Sr. Member
****
Posts: 271


Life is difficult, but fortunately is short!


WWW
« Reply #6 on: February 17, 2010, 01:05:52 PM »

For your next step, I recommend that you try Oberon microsystems' BlackBox Component Builder. The language used, 'Component Pascal', is a small superset of Oberon-2. You can download the complete system from:

http://www.oberon.ch/blackbox.html
Component Pascal Collection
Here you will find many interesting examples and libraries
Logged
vonck67
Newbie
*
Posts: 4


« Reply #7 on: April 10, 2010, 10:37:34 PM »

I'm testing the XDS Oberon-2 right now for using it as a platform for programming with highschool students.
My benchmark is good old Turbo Pascal. However I uterly dislike unqualified imports. Teaching programming without explicit imports is for me something like teaching biology using the bible as a textbook. Using Black Box as a programming environment is making teaching complex too, despite of promisses of program and text integration. The russian Informatika21 initiiative used also Turbo Pascal and the Informatics Olympiad as a benchmark for implementing Black Box as a teaching tool. However, the result is not very encouraging. I did not get the applications from Zinns page function properly, and the graphics emulation just makes you miss TP more.
The problem is that so called easy programming environments, take for instance Processing, are not making things easy at all. They are just Dumbing People Down and postpone rational thinking.  Especially when behind these fake solutions for programming is a compiled C library with who knows what kind of macro's header files and what othermystifying constructions you have.  And if you have a highly paid job, using bloat ware from IBM or Oracle, you just shut up. However, at high school intelligent kids just get very disappointed if you cannot reveal why programmes do what the do. You do not have to have read Lev Vygotsky  to understand that asking questions is the basis of learning. The introduction of Lego Mindstorm is a good example of dumbing kids down with computer science. The Mindstorm is made for fortunate 10 year old kids. We teach 17 year old students how to use them. Allright, there is Java for the Mindstorm, but here also it's only windowdressing. You do not learn structured programming or algorithms with these toys. It's Robby the robot and the Turtle all over again.
So I vote for XDS as a compiler. Oberon as a language. The desktop for music, mail and morgages. Microcontollers for thinking. And a fountainpen for writing.


Logged
cfbsoftware
Full Member
***
Posts: 107


WWW
« Reply #8 on: April 11, 2010, 02:59:29 AM »

I'm testing the XDS Oberon-2 right now for using it as a platform for programming with highschool students.
Another Win32 system worth looking at for this purpose is POW!

http://www.fim.uni-linz.ac.at/pow/pow.htm

There is also a textbook available that is suitable for beginners:

http://www.fim.uni-linz.ac.at/pow/book/

Logged

Chris Burrows
Astrobe v7.0 (Feb 2019): Oberon for ARM Cortex-M3, M4 and M7 Microcontrollers
http://www.astrobe.com
darek
Jr. Member
**
Posts: 59


« Reply #9 on: April 11, 2010, 07:44:49 AM »

Hi All,
  Maybe this is off-topic (non-A2/Oberon related) but ...
  Few months ago, I have participated in this seminar:
         http://www.cs.kuleuven.be/~dirk/ada-belgium/events/10/100223-ab-adaspark.html

  and one of the speakers talked about using Ada language in education:
        http://www.cs.kuleuven.be/~dirk/ada-belgium/events/10/100223-ab-ploedereder.pdf

   A very interesting presentation on the  high-assurance software:
       http://www.cs.kuleuven.be/~dirk/ada-belgium/events/10/100223-ab-chapman.pdf

  Like it or not, but it is worth reading.
 
Regards,
  Darek   
Logged
vonck67
Newbie
*
Posts: 4


« Reply #10 on: April 11, 2010, 12:43:22 PM »

Hi Chris thanks for pointing to the POW! compiler. However i do not think  there is actual teaching with POW! At university of Brussels they teach Modula-2 in the first year. They use the XDS compiler.  You can take a look at the website of their students projects. The sourcecode  looks very inspiring. Right now I'm getting in contact with on of the main teacher of this course, Lemeire Jan, to discuss the possibilities to translate his course to secondary education (highschool).
http://parallel.vub.ac.be/
Also at the university of Antwerp they still teach native oberon in the first year.  So the Belgians kept their cool when the Java programming swept over Europe
I heard from my friend Jan Verhoeven that he gets frequently response from Spain for his lowlevel libraries for the FST Modula-2 compiler. So also in Spain there are some Wirthian strongholds left. Maybe that's why Microsoft planned their main office their, if its not for the weather.

By the way there is a another reason why I tend to choose for XDS. XDS has a compiler option to generate native c code. I've not tested it yet, but i would like to use it to program the avr on the Arduino Board. Chris I would like to use your oberon compiler in my programmin classes, but I think that starting with a ARM32 microcontroller is to complex for highschool level. And also kids like experimenting with small circuits on breadboards.  I did not find a affordable small NXP pdip interface board, yet. I tested the mikropascal compiler of MikroE on the arduino, overriding the bootloader and using the ISP. I worked fine. However, the lowlevel libraries are not open and their are some quirky additions to the Pascal language.

Greets,
F.P.
Amsterdam




Logged
vonck67
Newbie
*
Posts: 4


« Reply #11 on: April 11, 2010, 01:19:54 PM »

Hi Darek,

your links to the ADA symposium are interesting indeed. Again it proves my idea that Belgian programming education kept its nerves under the siege of commercial computer languages.
But I still think, especially when I see the dozens of logo's of the companies in the presentation, that ADA/SPARK is just a way of selling a new product by creating a fear.
Reliability of software is a political phenomenon. For instance in the Netherlands we have a fly by wire Surge Dam at Rotterdam that supossed to be developped with verification techniques. At the end the Maeslant Kering sofware was programmed in C++.

So ask yourself: is there really Java in Space. Why is the Voyager 1 still working. Why get Russian programmers job offers from Microsoft. Who started Google.
And maybe the most important question: why is Jorg Gutknecht also an artist?

Greets,
F.P.
Amsterdam   
Logged
cfbsoftware
Full Member
***
Posts: 107


WWW
« Reply #12 on: April 12, 2010, 06:16:16 AM »

And also kids like experimenting with small circuits on breadboards.  I did not find a affordable small NXP pdip interface board, yet.
Haven't had a chance to try Armaide with these yet as I have only just been told about them: FDI sell an LPC2103 'Derivative Board' for only $US 9.50. Wouldn't take much to solder some pins on them to use in a breadboard. They also sell a USB dongle to power these boards and program them for $US 17.00:

http://www.teamfdi.com/USBDongle/usb-dongle.shtml



Logged

Chris Burrows
Astrobe v7.0 (Feb 2019): Oberon for ARM Cortex-M3, M4 and M7 Microcontrollers
http://www.astrobe.com
staubesv
Administrator
Sr. Member
*****
Posts: 387



« Reply #13 on: April 12, 2010, 01:17:55 PM »

We used WinAos in an Operating Systems course at ETHZ and we were very pleased about how well this worked. Besides an easy-to-learn programming  language (Active Oberon), WinAos & PET also turned out to be an easy-to-learn programming environment.
No installation and configuration issues (download + install in less than a minute, no configuration necessary), fast compile times and fast application startup time, a simple IDE to essentially edit and compile source code, full toolchain included (no dependecies like "first install product XY" found on "..."), ...

Essentially, this programming environment did what we wanted: The students could focus the actual problems rather than issues related to programming languages and programming environments.

Quote
Microcontollers for thinking
Hmm... microcontrollers for learning structured programming and data structures?
Logged
cfbsoftware
Full Member
***
Posts: 107


WWW
« Reply #14 on: April 13, 2010, 01:09:54 AM »

Hmm... microcontrollers for learning structured programming and data structures?

Why not? There are microcontrollers and then there are MICROCONTROLLERS. You may be thinking of primitive 8-bit devices. We target the NXP LPC2xxx range of ARM-based microcontrollers. These are 32-bit devices which have up to 512k of ROM for code, 64k of RAM for data on the chip itself - more than enough to enable you to run well-structured Oberon-07 applications on.

These microcontrollers also have built-in UART, USB, SPI, I2C, CAN, Timers etc. etc. The advantage is that high-school students can get to write interesting programs that interact in a hands-on way with the real physical world - motors, lights, accelerometers, magnetometers, temperature and pressure sensors, GPS systems etc. etc. These are more likely to capture the imagination of a typical teenager than implementing the dining philosopher algorithm - that can wait until after they have discovered that computing can actually be fun.
Logged

Chris Burrows
Astrobe v7.0 (Feb 2019): Oberon for ARM Cortex-M3, M4 and M7 Microcontrollers
http://www.astrobe.com
Pages: [1] 2
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!