Skip to content

5cover/psdc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PSDC (WIP)

IUT de Lannion Pseudocode compiler (transpiler).

Tools

VSCode Pseudocode extension

Roadmap

Target languages

  • C
  • C#
  • CimPU
  • Java
  • JavaScript
  • Pascal
  • Perl
  • PHP
  • Python
  • Shell
  • SQL
  • LLVM

Language features

Notation: bold → underway

  • Alternatives
  • Loops
    • For
    • While
    • Do..While
    • Repeat..Until
  • Procedures
  • Functions
  • Structures
  • selon
  • Fix syntax error handling
  • Lvalues
  • Constant folding for type checking and division by zero
  • Optional brackets in control structures
  • Benchmarks
  • Formal grammar
  • Brace initialization (see TD14 ex 1)
  • More static analysis
  • finPour keyword (equivalent to fin)
  • String literal escape sequences
  • Lowercase boolean operators
  • Modules
  • Numeroted control stuctures (si1, si2, si3)
  • File handling (low priority)
  • Preprocessor (limitations of the language)
    • ecrireEcran newlines
  • GNU-compliant message formatting
  • CLI (use nuget package)
    • custom header
    • -d, --documentation : none, all, file
    • Global preprocessor directives
    • Formatting customization
  • Tests
    • Errors
    • Valid code
  • Documentation
    • CLI
    • Language standard
  • Initial release
  • Self-hosting (rewrite in Pseudocode)
  • VSCode tooling
    • Debugger
    • Language server

C output configuration

  • Non-null-terminated-string-proof format strings: width specifier for lengthed strings (usually useless since null-terminated, but could be useful if non null-terminated strings are used)
  • Type mappings
    • réelfloat, double, long double?
    • entiershort, int, long?
    • caractèrechar, tchar_t, wchar_t?
  • Parameter names in prototypes?
  • Doxygen documentation skeleton?
  • i++ or ++i