SBP
SBP | ||
[[Fichier:Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value).|131px|alt=Logo.]] | ||
[[Fichier:Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value).|280px|alt=Erreur Lua dans Module:Wikidata à la ligne 606 : attempt to index field 'wikibase' (a nil value).|Erreur Lua dans Module:Wikidata à la ligne 606 : attempt to index field 'wikibase' (a nil value).]] Erreur Lua dans Module:Wikidata à la ligne 606 : attempt to index field 'wikibase' (a nil value). | ||
Date de première version | ||
---|---|---|
Paradigme | Multi-paradigme | |
Auteur | SelfBuild | |
Dernière version | Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value). | |
Version en développement | Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value). | |
Typage | Dynamique, faible | |
Influencé par | PHP, Python, Ruby, CoffeeScript, Stylus | |
A influencé | MoonScript | |
Écrit en | Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value)./Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value). | |
Système d'exploitation | Multiplate-forme | |
Licence | Licence GPL | |
Site web | sbp.selfbuild.fr | |
Extension de fichier | Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value). | |
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[modifier]
Structures de contrôle[modifier]
Avec les structures de contrôle, SBP permet d'omettre les accolades, les parenthèses et les points-virgules.
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"
Le code PHP compilé est alors :
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";
}
Programmation orientée objet[modifier]
Des opérateurs raccourcis sont disponibles pour les définitions de classes.
namespace Family
Son:Father <<< Human
- $age
+ __construct $age = null
>age = $age
+ getAge
<>age
+ isAdult
<>age>18
* birthday
>age++
Le code PHP compilé est alors :
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++;
}}
Voir aussi[modifier]
Articles connexes[modifier]
Liens externes[modifier]
Erreur Lua dans Module:Catégorisation_badges à la ligne 170 : attempt to index field 'wikibase' (a nil value).Erreur Lua dans Module:Suivi_des_biographies à la ligne 189 : attempt to index field 'wikibase' (a nil value).
Cet Article wiki "SBP" est issu de Wikipedia. La liste de ses auteurs peut être visible dans ses historiques.