Du bruit au signal (et inversement)

Aller au contenu | Aller au menu | Aller à la recherche

Tag - programmation

Fil des billets - Fil des commentaires

vendredi 9 janvier 2009

Les langages de programmation spécialisés sont-ils de véritables langages ?

Un petit billet sur les langages de programmation spécialisés pour commencer l'année. Et tout d'abord un bref rappel:

"Un langage de programmation est dit Turing-complet s'il permet de représenter toutes les fonctions calculables au sens de Turing et Church (nonobstant la finitude de la mémoire des ordinateurs). La plupart des langages usuels de programmation (C, C++, Java, ...) sont Turing-complets. Le fait d'être Turing-complet est généralement requis pour un langage de programmation générique. En revanche, ce n'est pas le cas pour un langage dédié au traitement de problèmes spécifiques." (extrait de Wikipedia)

La dernière phrase ne doit pas être comprise de travers. On pense parfois qu'un langage très spécialisé, dédié au traitement de problèmes spécifiques comme le scripting, le développement Web, ou le traitement graphique, ne peut être considéré comme un véritable langage permettant d'exprimer n'importe quel problème basé sur un algorithme mécanique (moyennant la thèse de Church). Il n'en est rien. Les langages de programmation spécialisés ne sont pas tous des langages "au rabais". Certains d'entre eux qui semblent pourtant conçus pour des tâches extrêmement précises doivent pourtant être considérés comme de "vrais langages universels" car ils sont Turing-complet. Deux exemples:

vendredi 17 octobre 2008

Architecture d'Adobe Ligthroom et langage LUA

Une présentation récente par Troy Gaul (Adobe) décrit l'architecture de Lightroom.

A noter:

  • 63 % de Lightroom est écrit en LUA, langage de script compact créé en 1993 et particulièrement utilisé pour le développement des jeux vidéos
  • Le développement utilise un IDE écrit lui-même en LUA
  • Le reste de l'application est en C, C++ et Objective C, en particulier les fonctions de bas niveau traitant les images (code partagé avec Camera Raw).
  • Lightroom embarque SQLite 3.4.1
(via le blog de Ted Leung)