N’importe quel langage peut-il être utilisé pour programmer dans n’importe quel paradigme ?[fermé]

StackOverflow https://stackoverflow.com//questions/10663108

Question

N’importe quel langage peut-il être utilisé pour programmer dans n’importe quel paradigme ?Par exemple C n'a pas de classes mais il est possible de programmer en POO.Il y a certains langages (tels que l'assembly) dans lesquels je ne vois pas utiliser la POO.

Était-ce utile?

La solution

Oui, simplement en raison du fait que vous puissiez mettre en œuvre un interprète pour votre paradigme $ d $ préféré dans la langue hôte.

Pratiquement cependant, ce n'est pas réalisable, efficace ou droit.

Autres conseils

C++ est en fin de compte un assemblage, vous disposez simplement d'un compilateur pour écrire l'assembly pour vous à partir d'une description plus agréable.Alors bien sûr, vous pouvez faire de la POO en assembleur, tout comme vous pouvez faire de la POO en C ;c'est juste que beaucoup de concepts OO finissent par être implémentés avec des conventions et une discipline de programmeur plutôt que d'être forcés par la structure du langage, avec pour résultat d'énormes classes de bugs deviennent possibles et vos outils linguistiques ne seront probablement pas très bons. pour vous aider à trouver.

Des arguments similaires suivent pour la plupart des inadéquations paradigme/langage.Beaucoup de programmes orientés objet avoir a été écrit en C de cette façon, cela peut donc même être une chose quelque peu pratique à faire, pas seulement une question académique.

Cela peut être un peu plus difficile quand ce que tu veux, c'est retirer restrictions plutôt que d’en ajouter.

Dans les langages imposés par la pureté tels que Haskell et Mercury, vous ne pouvez pas soudainement éclater des paquets d'état mutable encapsulé de style orienté objet au milieu d'un code pur arbitraire (du moins pas sans utiliser les fonctionnalités "tous les paris sont ouverts" comme unsafePerformIO à Haskell ou promise_pure dans Mercury pour mentir au compilateur, auquel cas votre programme pourrait complètement échouer à fonctionner à moins que vous ne puissiez envelopper une interface pure autour des régions dans lesquelles vous faites cela).Cependant, vous pouvez écrire entier programmes de style procédural ou orienté objet dans ces langages, en ne quittant jamais le mécanisme qu'ils utilisent pour effectuer des E/S.

De même, si vous considérez l'utilisation du typage canard dans les langages dynamiques comme un paradigme, il est assez pénible d'obtenir quelque chose de similaire dans les langages à typage statique, mais vous pouvez toujours trouver un moyen de représenter vos types dynamiques comme données.Mais vous vous retrouvez encore une fois à faire des choses avec des conventions et des réimplémentations que vous obtiendriez gratuitement si vous utilisiez réellement un langage de frappe de canard.

Je suis presque sûr qu'il serait difficile de trouver un langage (utilisable pour écrire des programmes à usage général) qui ne peut pas être adapté pour écrire du code dans n'importe quel paradigme que vous aimez.L'adaptation peut ne pas produire de code très efficace (parfois c'est possible cependant ;adapter C ou assembly à n'importe quel paradigme peut généralement être rendu à peu près aussi efficace que si vous aviez un langage adapté à ce paradigme), et cela sera presque certainement horriblement inefficace en termes de temps de programmation.

Non, toutes les langues ne peuvent pas être utilisées pour programmer dans n'importe quel paradigme.Cependant, les plus populaires - Python, C ++, etc. vous permettent de choisir comment vous souhaitez programmer votre programme.Même php ajoute un support oo.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top