Menu

#274 Open Issues in Compiler  Edit

compiler
closed
None
2026-01-09
2019-10-26
No

uncomplete and unsorted list of open issues in the compiler

  • identifiers must become checked against predefined words
    • update 2022-09-27:
      • keywords are not allowed as identifiers: the lexer detects this and emits incomprehensive error messages like no via to ... expected ....
      • other reserved words like A, T, ... are currently also forbidden . They should be usable as identifiers
      • both elements should be solved in milestone compiler_V2
    • update 2026-01-09
      • is now in ticket #437
      • solved
  • type mismatch errors must become more comprehensive (ExpressionTypeVisitor)
    • update 2022-09-27
      • this is solved in many cases but there are a lot of throw XYZExceptions in several modules
      • the mechanism throw XYZExceptiopn should be substituted by ErrorStack.add(), .addInternal()
      • all exception classes should be removed from the project
      • this may be subject of compiler_V2
    • update 2028-01-09
      • most exception classes are not used
      • the unused exception classes should become removed from the project
  • TYPE
    • update 2022-09-27
    • is solved
  • BIT + CHAR slices on left hand side
    • update 2022-09-27
    • is solved for variables as name
    • ticket#405 (compiler_V2) deals with procedure results as name
    • --> solved for milestone compiler
  • array slices
    • all kind of slices as procedure and i/o-parameters
    • update 2022-09-27
      • this may be solved
      • --> tests should be added to check the status
    • update 2022-09-29:
      • array slices work with PUT
      • array slices are not defined as actual procedure parameters and are not supported by OpenPEARL
      • the language report of PEARL90 V2.2 uses the term
        • segment in the chapter I/O
        • slice in the appendix
        • OpenPEARL uses the term ArraySlice
      • the language report states that they are
        • allowed in READ, WRITE, GET and PUT
        • not allowed in CONVERT, TAKE and SEND
      • consequences:
        • add tests with all types of I/O
        • emit warnings if array slices are used in CONVERT, TAKE or SEND with -std=PEARL90
      • should be solved in milestone compiler
  • finish STRUCT support
    • implement new I/O API (after STRUCT support) *(solved)
    • Initializer
    • update 2022-09-27
      • initializers are solved
      • role out of structure components in i/o statements with type adjustments is still missing
        • update 2026-01.09
        • moved in new ticket #438
        • solved`
    • update 2026-01-09
      • the language report must state,that OpenPEARL does not support yet the behavior of PEARL90
      • solved
  • a semantic analyses check for valid constant array and slice indices would be nice
    • update 2022-09-27
      • this my be subject of milestone compiler_V2
    • update 2026-01-09
      • separate ticket #439 created for milestone `compiler_V2'
      • solved

please add other issues

Discussion

  • Rainer Müller

    Rainer Müller - 2019-10-27
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -9,5 +9,10 @@
    
         * currently local variables may have the save name as a procedure 
         * error messages must become more comprehensive
     * type mismach errors must become more comprehensive
    +* TYPE
    +* LENGTH
    +* BIT + CHAR slices on left hand side
    +* array slices
    +* all kind of slices as procedure  and i/o-parameters
    
     *please add other issues*
    
     
  • Rainer Müller

    Rainer Müller - 2019-10-29
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -3,16 +3,18 @@
    
     * identifiers must become checked against predefined words
     * array access must be checked for correct number of indices and index type must be FIXED
     * SIGNAL support (see separate ticket)
    -* rule **Name** must be integrated at nearly all positions of **ID**
    +* rule **Name** must be integrated at nearly all positions of **ID** (after STRUCT support)
     * multi module support (see separate ticket)
     * check definitions of variables, procedures, ... for duplicates 
    -    * currently local variables may have the save name as a procedure 
    -    * error messages must become more comprehensive
    -* type mismach errors must become more comprehensive
    +    * currently local variables may have the same name as a procedure (that seems to be ok)
    +    * error messages must become more comprehensive (SymbolTabelVisitor)
    +* type mismach errors must become more comprehensive (ExpressionTypeVisitor)
     * TYPE
     * LENGTH
     * BIT + CHAR slices on left hand side
     * array slices
     * all kind of slices as procedure  and i/o-parameters
    +* finish STRUCT support
    +* implement new I/O API (after STRUCT support)
    
     *please add other issues*
    
     
  • Rainer Müller

    Rainer Müller - 2019-11-03

    array indices are now checked on number and type

    Note about slices as PROC-parameters:
    A look on Werum-PEARL showed that

    • CHAR-slices may be passed by IDENT and work as expected
    • BIT-slices are rejected by the compiler
    • CHAR-slices(segment) are not accepted as PROC-parameters -- they are accepted in i/o statements (PUT checked)
     
  • Rainer Müller

    Rainer Müller - 2019-11-08
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,16 +1,16 @@
     ***uncomplete*** and ***unsorted*** list of open issues in the compiler
    
    
     * identifiers must become checked against predefined words
    -* array access must be checked for correct number of indices and index type must be FIXED
     * SIGNAL support (see separate ticket)
     * rule **Name** must be integrated at nearly all positions of **ID** (after STRUCT support)
     * multi module support (see separate ticket)
     * check definitions of variables, procedures, ... for duplicates 
         * currently local variables may have the same name as a procedure (that seems to be ok)
    +        * overwritten identifiers shoul become noted as warning 
         * error messages must become more comprehensive (SymbolTabelVisitor)
     * type mismach errors must become more comprehensive (ExpressionTypeVisitor)
     * TYPE
    -* LENGTH
    +* LENGTH (not working on CHAR and BIT; see separate ticket)
     * BIT + CHAR slices on left hand side
     * array slices
     * all kind of slices as procedure  and i/o-parameters
    
     
  • Rainer Müller

    Rainer Müller - 2019-11-08

    array indices check completed

     
  • Rainer Müller

    Rainer Müller - 2020-02-25
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -15,6 +15,6 @@
    
     * array slices
     * all kind of slices as procedure  and i/o-parameters
     * finish STRUCT support
    -* implement new I/O API (after STRUCT support)
    +* * implement new I/O API (after STRUCT support) *(solved)
    
     *please add other issues*
    
     
  • Rainer Müller

    Rainer Müller - 2020-03-24
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -6,7 +6,7 @@
    
     * multi module support (see separate ticket)
     * check definitions of variables, procedures, ... for duplicates 
         * currently local variables may have the same name as a procedure (that seems to be ok)
    -        * overwritten identifiers shoul become noted as warning 
    +        * overwritten identifiers should become noted as warning 
         * error messages must become more comprehensive (SymbolTabelVisitor)
     * type mismach errors must become more comprehensive (ExpressionTypeVisitor)
     * TYPE
    @@ -16,5 +16,6 @@
     * all kind of slices as procedure  and i/o-parameters
     * finish STRUCT support
     * * implement new I/O API (after STRUCT support) *(solved)
    +* a semantic analyses check for valid  constant array and slice indices would be nice
    
     *please add other issues*
    
     
  • Marcel Schaible

    Marcel Schaible - 2021-11-11
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,21 +1,14 @@
     ***uncomplete*** and ***unsorted*** list of open issues in the compiler
    
    
     * identifiers must become checked against predefined words
    -* SIGNAL support (see separate ticket)
    -* rule **Name** must be integrated at nearly all positions of **ID** (after STRUCT support)
    -* multi module support (see separate ticket)
    -* check definitions of variables, procedures, ... for duplicates 
    -    * currently local variables may have the same name as a procedure (that seems to be ok)
    -        * overwritten identifiers should become noted as warning 
    -    * error messages must become more comprehensive (SymbolTabelVisitor)
     * type mismach errors must become more comprehensive (ExpressionTypeVisitor)
     * TYPE
    -* LENGTH (not working on CHAR and BIT; see separate ticket)
     * BIT + CHAR slices on left hand side
     * array slices
     * all kind of slices as procedure  and i/o-parameters
     * finish STRUCT support
     * * implement new I/O API (after STRUCT support) *(solved)
    +* * Initializer
     * a semantic analyses check for valid  constant array and slice indices would be nice
    
     *please add other issues*
    
     
  • Rainer Müller

    Rainer Müller - 2022-03-10

    TYPE is treated in ticket #375

     
  • Rainer Müller

    Rainer Müller - 2022-09-27
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,14 +1,38 @@
     ***uncomplete*** and ***unsorted*** list of open issues in the compiler
    
    
     * identifiers must become checked against predefined words
    -* type mismach errors must become more comprehensive (ExpressionTypeVisitor)
    +    * update 2022-09-27:
    +        * keywords are not allowed as identifiers: the lexer detects this and emits incomprehensive error messages like `no via to ... expected ....`
    +        * other reserved words like `A`, `T`, ... are currently also forbidden . They should be usable as identifiers
    +        * both elements should be solved in milestone `compiler_V2`
    +* type mismatch errors must become more comprehensive (ExpressionTypeVisitor)
    +    * update 2022-09-27
    +        * this is solved in many cases but there are a lot of throw XYZExceptions in several modules
    +        * the mechanism `throw XYZExceptiopn` should be substituted by `ErrorStack.add(), .addInternal()`
    +        * all exception classes should be removed from the project
    +        * this may be subject of `compiler_V2`
     * TYPE
    +    * update 2022-09-27
    +    * is solved
     * BIT + CHAR slices on left hand side
    +    * update 2022-09-27
    +    * is solved for variables as name
    +    * ticket#405 (`compiler_V2`) deals with procedure results as `name`
    +    * --> solved for milestone `compiler`
     * array slices
    -* all kind of slices as procedure  and i/o-parameters
    +    * all kind of slices as procedure  and i/o-parameters
    +    * update 2022-09-27
    +        * this may be solved
    +        *  --> tests should be added to check the status
     * finish STRUCT support
    -* * implement new I/O API (after STRUCT support) *(solved)
    -* * Initializer
    +    * implement new I/O API (after STRUCT support) *(solved)
    +    * Initializer
    +    * update 2022-09-27
    +        * initializers are solved 
    +        * role out of structure components in i/o statements with type adjustments is still missing
    +        * this may be subject of `compiler_V2` 
     * a semantic analyses check for valid  constant array and slice indices would be nice
    +    * update 2022-09-27
    +    * this my be subject of milestone `compiler_V2`
    
     *please add other issues*
    
     
  • Rainer Müller

    Rainer Müller - 2022-09-29
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -24,6 +24,21 @@
    
         * update 2022-09-27
             * this may be solved
             *  --> tests should be added to check the status
    +    *  update 2022-09-29:
    +        *  array slices work with PUT
    +        *  array slices are not defined as actual procedure parameters and are not supported by OpenPEARL
    +        *  the language report uses the term 
    +            *  `segment` in the chapter I/O
    +            *  `slice` in the appendix
    +        *  the language report states that they are
    +            *  allowed in `READ`, `WRITE`, `GET` and `PUT`
    +            *  **not** allowed in `CONVERT`, `TAKE` and `SEND`
    +        *  consequences:
    +            *  rename `arraySlice` to `segment` in 
    +                *  the grammar and compiler source files
    +                *  and in the language report
    +            *  add tests with all types of I/O
    +            *  emit warning if segments are used in `CONVERT`, `TAKE` or `SEND` with  `-std=PEARL90`
     * finish STRUCT support
         * implement new I/O API (after STRUCT support) *(solved)
         * Initializer
    
     
  • Rainer Müller

    Rainer Müller - 2022-09-29
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -27,18 +27,17 @@
    
         *  update 2022-09-29:
             *  array slices work with PUT
             *  array slices are not defined as actual procedure parameters and are not supported by OpenPEARL
    -        *  the language report uses the term 
    +        *  the language report of PEARL90 V2.2 uses the term 
                 *  `segment` in the chapter I/O
                 *  `slice` in the appendix
    +            *  OpenPEARL uses the term `ArraySlice` 
             *  the language report states that they are
                 *  allowed in `READ`, `WRITE`, `GET` and `PUT`
                 *  **not** allowed in `CONVERT`, `TAKE` and `SEND`
             *  consequences:
    -            *  rename `arraySlice` to `segment` in 
    -                *  the grammar and compiler source files
    -                *  and in the language report
                 *  add tests with all types of I/O
    -            *  emit warning if segments are used in `CONVERT`, `TAKE` or `SEND` with  `-std=PEARL90`
    +            *  emit warnings if array slices are used in `CONVERT`, `TAKE` or `SEND` with  `-std=PEARL90`
    +        *  should be solved in milestone `compiler`
     * finish STRUCT support
         * implement new I/O API (after STRUCT support) *(solved)
         * Initializer
    
     
  • Rainer Müller

    Rainer Müller - 2026-01-09
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -11,6 +11,9 @@
    
             * the mechanism `throw XYZExceptiopn` should be substituted by `ErrorStack.add(), .addInternal()`
             * all exception classes should be removed from the project
             * this may be subject of `compiler_V2`
    +    * update 2028-01-09
    +        * most exception classes are not used
    +        *  the unused exception classes should become removed from the project
     * TYPE
         * update 2022-09-27
         * is solved
    @@ -45,6 +48,9 @@
             * initializers are solved 
             * role out of structure components in i/o statements with type adjustments is still missing
             * this may be subject of `compiler_V2` 
    +    * update 2026-01-09
    +        * the language report must state,that OpenPEARL does not support yet the behavior of PEARL90
    +        * solved 
     * a semantic analyses check for valid  constant array and slice indices would be nice
         * update 2022-09-27
         * this my be subject of milestone `compiler_V2`
    
     
  • Rainer Müller

    Rainer Müller - 2026-01-09
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -5,6 +5,9 @@
    
             * keywords are not allowed as identifiers: the lexer detects this and emits incomprehensive error messages like `no via to ... expected ....`
             * other reserved words like `A`, `T`, ... are currently also forbidden . They should be usable as identifiers
             * both elements should be solved in milestone `compiler_V2`
    +    * update 2026-01-09
    +        * is now in ticket #437
    +        * solved
     * type mismatch errors must become more comprehensive (ExpressionTypeVisitor)
         * update 2022-09-27
             * this is solved in many cases but there are a lot of throw XYZExceptions in several modules
    @@ -47,12 +50,17 @@
         * update 2022-09-27
             * initializers are solved 
             * role out of structure components in i/o statements with type adjustments is still missing
    -        * this may be subject of `compiler_V2` 
    +            * update 2026-01.09
    +            * moved in new ticket #438
    +            * solved` 
         * update 2026-01-09
             * the language report must state,that OpenPEARL does not support yet the behavior of PEARL90
             * solved 
     * a semantic analyses check for valid  constant array and slice indices would be nice
         * update 2022-09-27
    -    * this my be subject of milestone `compiler_V2`
    +        * this my be subject of milestone `compiler_V2`
    +    * update 2026-01-09
    +        * separate ticket #439 created for milestone `compiler_V2'
    +        * solved
    
     *please add other issues*
    
     
  • Rainer Müller

    Rainer Müller - 2026-01-09
    • status: open --> closed
    • assigned_to: Rainer Müller
     
  • Rainer Müller

    Rainer Müller - 2026-01-09

    open issues are now in separate tickets.

     

Anonymous
Anonymous

Add attachments
Cancel





MongoDB Logo MongoDB