[Oberon] CASE without ELSE

August Karlstrom fusionfile at gmail.com
Thu Feb 15 17:52:12 CET 2018

On 2018-02-15 16:12, Jörg wrote:
> The compiler doesn’t even implement the numeric case. 

If I understand it correctly, for integer and character case 
expressions, the case statement may trap unmatched expressions. This is 
beneficial when the expression is a variable of an enumerated type 
(semantically) since it implies that the statement should handle all 
cases. Unfortunately the compiler cannot enforce it.

> NW writes:
> The case statement performs the same function as the if statement. 
> However, it is intended to use a different technique of implementation, 
> namely a single, indexed branch instead of a cascade of conditional 
> branches. This is sensible only if the cases are distinguished by a 
> (mostly) contiguous range of label values.

This is in line with Wirth's idea that no language construct should have 
hidden inefficiencies.

-- August

More information about the Oberon mailing list