<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Wojciech,<div class=""><br class=""></div><div class="">I agree that computer scientists (and language designers) need to listen more to engineers and their needs. As an example where "bitwise operators" have been made available at the programming language level in a consistent way (and without compromising type safety), one may check out how the Swift programming language has defined them:</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><a href="https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AdvancedOperators.html#//apple_ref/doc/uid/TP40014097-CH27-ID28" class="">https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AdvancedOperators.html#//apple_ref/doc/uid/TP40014097-CH27-ID28</a></div><div class=""><br class=""></div><div class=""><a href="https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309" class="">https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309</a></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">In Swift, integer literals can be written in as a binary number, with a 0b prefix, for example</div><div class=""><br class=""></div><div class=""><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>var binaryInteger: Uint8 = 0b00001111       // 15 in binary notation</div></div><div class=""><br class=""></div><div class="">and most bitwise operators that one would expect (bitwise and, bitwise or, etc) are in the language. However, a "bit reversal" operator does not exist in Swift either, but could be easily programming with the bitwise shift operators that do exist.</div><div class=""><br class=""></div><div class="">It would not be too hard to introduce some of these ideas/concepts/notations into the Oberon programming language. Part of the issue there seems to be that some operators or functions such as ORD are in fact not well defined, as outlined in this thread earlier.</div><div class=""><br class=""></div><div class="">Andreas</div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 23 Sep 2017, at 16:39, Andreas Pirklbauer <<a href="mailto:andreas_pirklbauer@yahoo.com" class="">andreas_pirklbauer@yahoo.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class="">Evil?

If you want to manipulate bits, then you cannot escape the fact, they they have their positions within the word. The position depends on a platform. There is no such thing in the world like a computer which would not depend on bit positions. A processor status or setup depends on particular bits within registers, the video or audio depends on particular bits, and so on.

I see this discussion as yet another chasm between computer scientists and engineers. The former want to live in an ideal programming world where algorithms move from place to place without changing anything. For them, bit positions are ugly details to get forgotten. For an engineer the very notion that particular bits are not accessible is a sheer absurd.

I build and program hardware. I deal with bits every day. Anything what hampers my access to bits is an instant enemy. Our friends computer scientists should one day wake up to the fact that hardware has to be controlled by accessing particular bits in particular places. Having good tools for doing this is essential. These tools need to be nurtured rather than frown upon.

I know that Chris is on our side. He programs microcontrollers.  I am talking to the others who still think that Oberon only runs on a Turing machine. Or on Windows.

Thanks,
W</pre><div class=""><br class=""></div></div></div></blockquote></div><br class=""></div></body></html>