SBP
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 |
modifier ![]() |
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
- Portail des logiciels libres
- Portail de la programmation informatique