SBP

Aller à la navigation Aller à la recherche

SBP
Date de première version
Paradigme Multi-paradigme
Auteur SelfBuild
Typage Dynamique, faible
Influencé par PHP, Python, Ruby, CoffeeScript, Stylus
A influencé MoonScript
Système d'exploitation Multiplate-forme
Licence Licence GPL
Site web sbp.selfbuild.fr

SBP est un langage de programmation, qui se compile en PHP. Le langage ajoute du sucre syntaxique inspiré par Python et CoffeeScript afin d'améliorer la brièveté et la lisibilité du PHP, tout en ajoutant des fonctionnalités comme le chaînage et les opérateurs personnalisés.

Le résultat est compilé de façon prévisible en PHP, et les programmes peuvent être écrits avec moins de code sans effet sur la vitesse d'exécution.

SBP est structuré par indentation tout comme le Python ou le CoffeeScript. Il rend donc possible d'omettre la grande majorité des accolades et des points-virgules nécessaires en PHP. Aussi il devient alors possible de créer des applications web PHP dont le code est entièrement structuré par indentation (avec par exemple Jade pour les templates, CoffeeScript pour les scripts et Stylus pour les styles) comme cela était déjà possible avec Django ou Node.js.

SBP est implémenté dans le webFTP SelfBuild ou disponible via Composer en requérant le paquet kylekatarnls/sbp et propose une implémentation en autoload spécialement adapté au framework Laravel. Il est alors exécuté en Compilateur JIT.

Exemples

Structures de contrôle

Avec les structures de contrôle, SBP permet d'omettre les accolades, les parenthèses et les points-virgules. <source lang="coffeescript"> if $a

   for $i=1; $i<10; $i++
       if $i%2 is 0
           echo $i." est paire"
       else if $i%3 is 0
           echo $i." est un multiple de 3"
       else
           echo $i." n'a rien de spécial"

else

   echo "a est faux"

</source> Le code PHP compilé est alors : <source lang="php"> if ($a) {

   for ($i=1; $i<10; $i++) {
       if ($i%2 === 0) {
           echo $i." est paire";
       }
       else if ($i%3 === 0) {
           echo $i." est un multiple de 3";
       }
       else{
           echo $i." n'a rien de spécial";

}}} else{

   echo "a est faux";

} </source>

Programmation orientée objet

Des opérateurs raccourcis sont disponibles pour les définitions de classes. <source lang="coffeescript"> namespace Family

Son:Father <<< Human

- $age

+ __construct $age = null >age = $age

+ getAge <>age

+ isAdult <>age>18

* birthday >age++ </source> Le code PHP compilé est alors : <source lang="php"> namespace Family;

class Son extends Father implements Human {

private $age;

public function __construct ($age = null) { $this->age = $age; } public function getAge () { return $this->age; } public function isAdult () { return $this->age>18; } protected function birthday () { $this->age++; }} </source>

Voir aussi

Articles connexes

Liens externes

Article publié sur Wikimonde Plus

  • icône décorative Portail des logiciels libres
  • icône décorative Portail de la programmation informatique