wiki:Programming Languages

Version 3 (modified by szabgab, 6 years ago) (diff)

--

On this page we try to design how Padre should handle various needs of programming languages and file types.

Every type can have several tools for syntax highlighting, for execution, help, etc

Types

Syntax highlighting can be by

  • Scintilla (STC)
  • Kate plugin (which is just a few regular expressions in Perl 5)
  • Parrot parse tree
  • Other

Execution

  • Various implementations

Perl 5

Syntax highlighting

  • STC - old but fast
  • PPI - slow but quite good, can provide parse tree
  • Kate - (some Perl 5 regexes)
  • Parrot - Not available

Execution

  • There can be several different versions of the perl compiler installed

Perl 6

Syntax highlighting

  • by STD.pm (in Padre::Plugin:Perl6)
  • simple vi-style regex (will be in Padre::Plugin::Perl6 or separately to reduce the need for prereqs?) (Kate integration)
  • by Parrot (subclass if Padre::Plugin::Parrot?)
  • * Embedded Parrot
  • * externally executed Parrot
  • * Installed / development version of Parrot

Execution

Can have various implementations:

Can be installed/development etc.

Embedding

  • by Parrot + Rakudo + Parrot::Interpreter (Parrot built, languages/perl6 built, Parrot::Embed built)

PIR/PASM

Syntax highlighting

  • by simple regex
  • by Parrot

Execution

  • by Parrot

Embedding

  • by Parrot + Parrot::Interpreter

Python

It has several implementations

  • Pynie

PHP

  • Several versions of the official PHP
  • Pipp