[Oberon] How to write this program in Oberon-07?

Ala'a Mohammad amalawi at gmail.com
Tue Jan 25 15:52:28 CET 2022


Hi,

I do not want to start multiple rabbit holes. But here I go. There is
another version of BlackBox which is based on the 'Base' from the link
given. Its url is https://blackbox.oberon.org/. I did not dig deeper, since
I already have invested time in other one, but it is on my 'explore' list.
One clear distinction is the multiple documents as multiple windows (in
contrast to the BlackBox at https://blackboxframework.org/ , which has the
multiple documents inside one Window).

HiH and Have fun.

Regards,

On Tue, Jan 25, 2022 at 12:14 PM Joe Turner <medianjoe at mailfence.com> wrote:

> Hi Pablo,
> Many thanks for the links. I wasn't aware of Blackbox or component Pascal.
> I use Linux but it seems to work flawlessly with Wine. The book looks
> really good too.
> Joe
>
> January 24, 2022 8:19:02 PM CET Pablo Cayuela <pablo.cayuela at gmail.com>
> wrote:
>
>
>
> On Mon, Jan 24, 2022 at 11:14 AM Joe Turner <medianjoe at mailfence.com>
> wrote:
> >
> > I'm working through the book "Into the Realm of Oberon" which is written
> for Oberon-2. I can't figure out how to translate the following program
> into Oberon-07 (I'm using the OBNC compiler):
> >
> > MODULE case;
> > IMPORT In,Out;
> >
> > VAR countVowels: INTEGER; ch: CHAR;
> >
> > BEGIN
> >   In.Open;
> >   countVowels:=0;
> >   LOOP
> >     In.Char(ch);
> >     IF ~In.Done THEN EXIT END;
> >     CASE ch OF
> >       "a", "e", "i", "o", "u",
> >       "A", "E","I","O","U": INC(countVowels)
> >     ELSE
> >     END;
> >   END;
> >   Out.Int(countVowels,0);
> >   Out.String(" vowels read.");Out.Ln;
> > END case.
> >
> > Oberon-07 doesn't allow LOOP, EXIT, or ELSE in CASE.
> > Thanks in advance for any help.
> >
>
> Hi Joe,
> One way for you to use Oberon-2 syntax is to employ BlackBox Component
> Pascal Environment:
> https://blackboxframework.org/index.php?cID=home,en-us
> One public domain good book for practicing with BB CP is this:
> https://cslab.pepperdine.edu/warford/ComputingFundamentals/
> And its resources:
> http://www.zinnamturm.eu/downloadsOS.htm#Pbox
>
> Another way to use Oberon-2 syntax is to employ Oberon System 3 with
> Gadgets under Windows or Linux:
> https://github.com/pcayuela/oldftpETHZOberon/tree/master/System3/Win95NT
> https://github.com/pcayuela/oldftpETHZOberon/tree/master/System3/Unix
>
> In BlackBox your program counts the vowels on the viewer from where it is
> called.
> In Oberon System 3, it counts the vowels after the command line in any
> viewer.
> I've only modified your program puting the executable part inside a
> procedure to call it from any viewer inside of Oberon System 3 or BlackBox
> CP:
>
> MODULE Case;
> IMPORT In,Out;
>
> VAR countVowels: INTEGER; ch: CHAR;
>
> PROCEDURE Vowcount *;
> BEGIN
>   In.Open;
>   countVowels:=0;
>   LOOP
>     In.Char(ch);
>     IF ~In.Done THEN EXIT END;
>     CASE ch OF
>       "a", "e", "i", "o", "u",
>       "A", "E","I","O","U": INC(countVowels)
>     ELSE
>     END;
>   END;
>   Out.Int(countVowels,0);
>   Out.String(" vowels read.");Out.Ln;
> END Vowcount;
> END Case.
>
> Best regards,
> Prof Pablo Cayuela
> Argentina
>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>
> -- Sent with https://mailfence.com Secure and private email --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20220125/a0f90607/attachment.html>


More information about the Oberon mailing list