• More operator symbols

    11/24/2023 at 14:51 0 comments

    To say that I am frustrated by the vocabulary of some common languages is an understatement. JavaScript introduced the ">>>" symbol for the arithmetic (sign-preserving) shift but we're still far from satisfaction.

    The Pascal family of languages don't bother with such details because operators use all-letters operators : sll, shl... But the C-like syntax is preferred today so I need to be creative.

    Carry-related operations are traditionally absent, which is a shame. So let's skip directly to the rotations : there is no direct symbol for this, but I have long wanted to modify the shift symbols:

    <<@  rotate left
    
    >>@  rotate right

     Or maybe a shorter version:

    <@  rotate left
    
    @>  rotate right

    which is less effort than having to analyse the syntax tree and look for a compound operation (OR of two SHIFTs with the same arguments and the shift amounts sum up to 32 or 64).

    Now there is an even trickier symbol to choose : I need UMIN, UMAX, SMIN and SMAX (unsigned and signed minimum and maximum) The < and > symbols will be used but how to discern between signed and non signed operations ?

    <? MIN
    
    ?> MAX

    The Dollar symbol looks like a S so

    <$ SMIN 
    
    $> SMAX

    could do the trick.

    Any advice or prior art is welcome !

  • Addendum ABCE

    09/26/2023 at 06:43 0 comments

    I have covered permutations of control signals in binary trees many years ago, I have even published 2 articles:

    https://connect.ed-diamond.com/GNU-Linux-Magazine/glmf-218/quelques-applications-des-arbres-binaires-a-commande-equilibree

    https://connect.ed-diamond.com/GNU-Linux-Magazine/glmf-215/a-la-decouverte-des-arbres-binaires-a-commande-equilibree

    And I recently became aware that I am only a rediscoverer, as there are 2 patents:

    https://patents.google.com/patent/US5243599A/en by IBM, expired in 2011

    "Tree-type multiplexers and methods for configuring the same"

    Figure 6 is clearly a balanced tree (32 leaves, 1,7,7,8,8 configuration)

    https://patents.google.com/patent/US20120194250 AMD, seems identical but expires in 2031 ???

    I have not been able to understand the difference between the two patents but this would explain why the technique has not appeared on my radar before : who wants to walk on IBM's toes ? However its validity is gone since a dozen years now so why restrain ourselves ?

  • strings in C

    05/06/2023 at 03:58 4 comments

    I'm 46 years old and only now do I realize that there is <strings.h> and <string.h>

    WTF.