Bienvenue sur EveryBodyWiki ! Créez un compte ou connectez vous pour participer, améliorer ou créer un article, une biographie (la vôtre ?), une page entreprise...


SBP

De EverybodyWiki Bios & Wiki


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).

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]

  • PHP
  • Python

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).


Autres articles des thèmes Logiciels libres logiciels libres ET Programmation informatique programmation informatique : PdoMap, GitHub, Libdvbpsi

Autres articles du thème Logiciels libres logiciels libres : KontrolPack, Openbravo, Nuxeo EP, XSP (serveur), Cube 2 Engine, Super OS, Standards ouverts - Logiciels libres

Autres articles du thème Programmation informatique programmation informatique : BLU AGE, Codelet, noweb, PhBRML, Olivier Chappé, Suckless init, SmartSVN

Cet Article wiki "SBP" est issu de Wikipedia. La liste de ses auteurs peut être visible dans ses historiques.