Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

DSL Python :solutions sur mesure pour les domaines spécialisés

Lorsque nous écrivons le programme, nous constatons que les problèmes que nous résolvons appartiennent à des domaines spécifiques, également appelés domaines, tels que :

En utilisant le langage à usage général (GPL) comme Python ou Java, nous pouvons résoudre ces problèmes, mais le code devient trop détaillé et répétitif. Par conséquent, nous utiliserons le DSL (Domain Specific Language.

DSL – Langage spécifique au domaine

Le langage spécifique au domaine est un langage de programmation ou de spécification dédié à un domaine particulier. Il est différent du langage généraliste (GPL comme Python, C++ ou Java). Ils sont de deux types :

DSL externe

Pour travailler avec les bases de données, nous utilisons le SQL, au lieu d'écrire des boucles pour analyser les données manuellement, nous écrivons simplement :

SELECT name FROM users WHERE age > 10;

Pour concevoir les pages Web, nous utilisons le HTML. Au lieu de gérer manuellement les chaînes de texte et les positions, nous déclarons simplement :

<h1>Welcome To Tutorialspoint</h1>

DSL interne

En Python, le langage spécifique au domaine est construit sur la syntaxe Python. Des frameworks comme Flask ou Pandas sont des exemples de bibliothèques de type DSL qui permettent d'exprimer clairement les problèmes.

@app.route('/home')
def home():
 return "Hello...!"

Pourquoi les DSL en Python

Python est le meilleur choix pour le DSL car :

Par exemple, les frameworks de test comme pytest ou les frameworks Web comme Flask sont de type DSL. Au lieu d'écrire la logique de bas niveau, ils permettent d'écrire les commandes expressives.

Passons à l'exemple pour en savoir plus sur le langage spécifique au domaine.

Exemple 1

Regardons l'exemple suivant, dans lequel nous allons résumer le langage mathématique dans les fonctions nommées.

def add(x, y):
 return x + y
def multiply(x, y):
 return x * y
print(add(multiply(1, 3), multiply(2, 4)))

Voici le résultat du programme ci-dessus -

11

Exemple 2

Considérons l'exemple suivant, où nous allons utiliser le DSL dans les fichiers de configuration.

class demo:
 def __init__(self):
 self.settings = {}
 def set(self, key, value):
 self.settings[key] = value
 return self
 def get(self, key):
 return self.settings.get(key)
result = demo()
result.set("host", "Welcome").set("port", 1231)
print(result.get("host")) 

Le résultat du programme ci-dessus est -

Welcome

Exemple 3

Dans l'exemple suivant, nous allons observer le DSL pour interroger des données en utilisant la syntaxe SQL à l'intérieur de Python.

class demo:
 def __init__(x, dataset):
 x.dataset = dataset
 def where(x, condition):
 x.dataset = [item for item in x.dataset if condition(item)]
 return x
 def select(x, selector):
 return [selector(item) for item in x.dataset]
users = [
 {"name": "Ram", "age": 10},
 {"name": "Ravi", "age": 24},
 {"name": "Rahul", "age": 19},
]
result = demo(users).where(lambda u: u["age"] > 18).select(lambda u: u["name"])
print(result)

Voici le résultat du programme ci-dessus -

['Ravi', 'Rahul']

Python

  1. Python pour la boucle
  2. Python - Traitement XML
  3. Exemples de fonctions Python :appel, indentation, arguments et valeurs de retour
  4. Boucles Python For &While :Enumérer, interrompre, continuer l'instruction
  5. Modules Python
  6. Convertir une chaîne en casse de titre à l'aide de Python
  7. Python - Opérateurs de base
  8. Python - Programmation d'interface graphique (Tkinter)
  9. Espace de noms et portée Python