Pourquoi les développeurs n'utilisent pas plus de machines à état ?

Posté par  (site web personnel) . Édité par baud123, rootix et NeoX. Modéré par rootix. Licence CC By‑SA.
Étiquettes :
63
1
fév.
2013
Technologie

Les langages de programmations, de quelques paradigmes qu'ils soient (bien qu'un peu moins pour le paradigme logique), sont basés sur le concept de liste d'instructions exécutées à la suite par la machine. La machine exécutant ce code est une machine à état, mais le programme n'est pas formellement pensé comme tel.

Les machines à état semblent pourtant un bon outil pour la programmation des logiciels que nous avons l'habitude de développer : facile à dessiner sur papier, permettant un découpage clair du fonctionnement de l'application.
Sans compter qu'une machine à état se patche plus facilement qu'un code classique où l'effet spaghetti peut vite impliquer des effets indésirables.
Les designers de Qt l'ont bien compris en permettant de définir des machines à état pour décrire le comportement du contrôleur.

C'est pourquoi certains se sont demandés si la programmation en machine à état ne devrait pas être plus pratiquée et aimée des programmeurs. C'est, par exemple, ce que se demande Willem van Bergen, carrément enthousiaste.
Celui-ci pense que c'est le stockage de l'historique qui est essentiel.

Plus circonspect, Alan Skorkin étudie la problématique de reprise de code, afin de comparer les approches, pour conclure que si les machines à états ne sont pas la panacée, elles sont très intéressantes si on conçoit le code avec.

Un très intéressant débat est né de cette polémique sur Hacker News.

Forum Programmation.shell Utilisation de awk pour la jointure de 2 fichiers

Posté par  . Licence CC By‑SA.
2
21
jan.
2013

Je possède deux fichiers de taille différente ayant en commun un champ.
fichier 1:

1 48102
2 48103
3 48152
4 48156
5 48189

fichier 2:

14 jean
503 Benjamin
48102 Georges
48103 Lili
48152 Mélina
48156 Chantal
48189 Daniel
48512 Esthelle

Je souhaite réaliser un fichier final jointant ces 2 fichier le premier par le deuxième champ et le deuxième par son premier champ.

Mais essai avec join n'ont pas était concluant et il me semble que awk peut (…)

Concours de programmation CodinGame le 29 janvier 2013

Posté par  (site web personnel) . Édité par baud123. Modéré par claudex. Licence CC By‑SA.
15
19
jan.
2013
Technologie

Après un tour au Maroc, CodinGame, le challenge de programmation en ligne, revient le 29 janvier 2013 à 20h pour sa 3e édition.
L'occasion de se mesurer à plusieurs centaines d'autres codeurs, de remporter des Raspberry Pi 512 (+ accessoires) et, pour ceux qui le souhaitent, de décrocher un stage ou un emploi.
C'est gratuit, ouvert à tous, on peut participer de chez soi et c'est anonyme.

L’épreuve dure 4 heures maximum, où il faut essayer de résoudre 3 problèmes de programmation dans le langage de son choix parmi C, C++, Python, PHP, Java et C#.

L’environnement de développement proposé donne accès à un éditeur de code et un shell Bash, pour lancer son programme depuis le navigateur.
Dès la fin du concours, les scores et le classement général sont publiés. Pour que tout le monde puisse apprendre des bonnes idées des autres, le règlement prévoit que le code source des participants soit rendu public sous licence GPL v3 et affiché sur le site.

Forum Programmation.c Unification des commentaires entre plusieurs languages

Posté par  (site web personnel) . Licence CC By‑SA.
0
9
jan.
2013

Bonjour,

Dans le cadre de mon travail nous développons une API (en C), qui est ensuite utilisée en Java (au travers de JNI) et en C#.
Je voudrais savoir s'il existe un moyen d'éviter de dupliquer les commentaires (de la librairie en C), dans la mesure du possible, dans le binding JNI/Java et dans celui en C#.
Est-ce que quelqu'un connait un logiciel qui fait ça ou va-t-il falloir que je le code ?

Merci d'avance.

Forum Programmation.autre LOGO pour android

Posté par  . Licence CC By‑SA.
6
20
déc.
2012

Bonjour

Tout est dans le titre ! Je cherche une application de langage LOGO pour Android, pour initier des enfants (<10 ans) à la programmation. Il utilise déjà le LOGO sur pc (http://www.tortue-logo.fr/fr/tortue-logo) et je cherche un programme similaire.
Des idées ???

Publication de la nouvelle norme Ada 2012

42
17
déc.
2012
Ada

Après plusieurs années passées à parlementer, la nouvelle norme Ada 2012 vient enfin d'être publiée par l'ISO sous le numéro ISO/IEC 8652:2012. Il s'agit donc de la quatrième révision du langage ajoutant ainsi différentes fonctionnalités par rapport à la version 2005.

N. D. M. : GNAT est le compilateur Ada du projet GNU, faisant partie de GNU Compiler Collection (GCC). Toujours en logiciel libre, on peut citer MaRTE OS un système d'exploitation libre temps-réel en Ada.

Journal Adopter un style de programmation fonctionnel

61
14
nov.
2012

John Carmack, c'est ce développeur de renom chez IdSoftware, qui a participé à la création de titres phares du jeu vidéo PC avec la série des Doom, des Wolfenstein et des Quake. Bien que n'étant pas des logiciels libres, leurs moteurs sont régulièrement libérés et LinuxFR se fait l'écho de ces libérations depuis sa création (ici, et par exemple). Bref tout ça pour dire que je sais bien qu'il ne fait pas du logiciel libre, (…)

Journal Annonce : un blog sur une équipe de recherche en langages de programmation

Posté par  .
21
8
nov.
2012

Cette année j'ai lancé un blog (anglophone) en commun avec les autres membres de mon équipe de recherche, Gallium, qui travaille sur les langages de programmation et la preuve de programme. C'est aussi l'équipe qui a conçu et maintient le langage de programmation OCaml, donc une partie des articles concernent ce langage et son développement—au passage, c'est un logiciel libre dans l'écosystème duquel de nombreuses contributions sont possibles.

Voilà, on m'a signalé que ça pourrait intéresser des LinuxFRiens donc (…)

Journal opa-watch: compilation et lancement automatique à l'édition

Posté par  .
3
21
sept.
2012

Éditer, Compiler, Lancer… c'est une boucle que vous ne connaissez que trop. Vous avez la flemme de réécrire un n-ième script bash à base de inotify-wait et notify-send (ou quelque chose de plus exotique).

opa-watch vous permet de vous concentrer sur la boucle Editer, Editer, Editer…

Le but d'opa-watch est de faciliter la vie des développeurs Opa mais il est également conçus pour être utilisable pour d'autres langages (voir pour d'autres activités que le développement).

Par exemple ce journal (…)

En Estonie, la programmation à l’école dès 6 ans

19
7
sept.
2012
Éducation

Le programme ProgeTiiger prépare les enfants estoniens au développement d’applications Web et mobiles en leur apprenant les bases de la programmation à l’école dès l’âge de six ans !

L’Estonie est l’un des pays les plus connectés à Internet au monde, ce qui a contribué à l’essor de sociétés comme Skype ou Playtech.

Ce programme pourrait à long terme faciliter la tâche aux employeurs qui ont actuellement du mal à trouver de la main d’œuvre compétente dans le domaine du développement. Il est d’ailleurs parrainé par des compagnies de la sphère technologique.

Il ne concernera pour cette rentrée que quelques écoles pilotes, mais l’initiative pourrait s’étendre à toutes les écoles publiques du pays.

Peu de détails ont été révélés, mais la nouvelle soulève encore une fois des questions concernant la meilleure façon d’enseigner l’informatique pour des enfants d’âge scolaire :

  • Quels sont les langages de programmation les mieux adaptés ? LOGO ? BASIC ? Python ? Java ? JavaScript ?
  • Faut‐il commencer par les bases théoriques, comme dans le livre Computer Science Unplugged — qui a, par ailleurs, été traduit en français par l’équipe d’Interstices ?
  • À quel âge peut‐on commencer ?

Forum général.petites-annonces Donne livre : Programmation Linux - Campus Press

Posté par  .
Étiquettes :
0
25
août
2012

Bonjour

je donne gracieusement le livre suivant :

L'intro Programmation Linux. de chez CampusPress avec son CD contenant le code et les exemples.

Lien Amazon.

Le livre est assez ancien. Mais il y'a des principes toujours d'actualité.

4 eme de couverture :
Quatrième de couverture
Sujets traités dans l'ouvrage :

  • Création de makefiles et de programmes filtres Linux
  • Gestion des erreurs et débogage des programmes
  • Utilisation de Linux et de ses compilateurs, ainsi que des logiciels GNU
  • Maîtrise (…)

Journal Parlons C, parlons pipe !

Posté par  (site web personnel) . Licence CC By‑SA.
27
21
août
2012

Mon livre de chevet, Unleashed C (non je mens, mon livre de chevet reste Playboy, mais ça fait moins sérieux), propose d'implémenter une FIFO (ou "pipe", pour tube en anglais) de la façon suivante (approximativement, j'ai simplifié la représentation (surtout il y avait QUEUE écrit et je veux pas de problèmes)) :

+----------+
| taille   |
+----------+
| debut    |-------+
+----------+       |
| fin      |       |
+----------+       V
  |              +---+---------+
  |              | s | donnes  |
  |              +---+---------+
  |
(…)

Journal Tu souhaites apprendre à programmer en shell

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
48
17
août
2012

Cher lecteur, tu souhaites apprendre à programmer le shell. Voici quelques recommendations que tu trouveras utiles (ou non).

(Ceci est une version modifiée d'un de mes commentaires planqué au fond du forum. Quand j'ai pensé au fantastique appeau à troll que j'avais écrit, j'ai décidé d'en faire un journal—c'est trolldi pour encore au moins deux longues heures!)

Usenet

Pour apprendre à programmer il faut lire beaucoup de programmes: abonne-toi à comp.unix.shell tu apprendras vite!

Bashing

Comme bash est un gros (…)

OCaml 4.00.0 est sorti

Posté par  (site web personnel) . Édité par Lucas Bonnet, Xavier Teyssier, rootix et Bruno Michel. Modéré par Nÿco. Licence CC By‑SA.
Étiquettes :
42
11
août
2012
Programmation fonctionnelle

La nouvelle version 4.00.0 du langage OCaml est disponible en ligne depuis le 26 juillet 2012. Aussi, la réunion des développeurs OCaml (OUD'2012) aura lieu cette années à Copenhague le 14 septembre. Venez nombreux !

Parmi les dernières nouveautés disponibles dans cette version 4.00.0 :

  • l'introduction des types de données algébriques généralisés (Generalized Algebraic Data Types - GADTs), qui permettent de détecter encore plus de bugs dès la compilation ;
  • le générateur de code pour ARM a été complètement réécrit ;
  • les types des modules de première classe sont maintenant inférés quand cela est possible, et les modules peuvent eux-mêmes être extraits par filtrage ;
  • le compilateur est disponible sous forme de bibliothèque, et une nouvelle option -bin-annot permet de sauver l'arbre de syntaxe typé, ce qui devrait permettre l'apparition de nouveaux outils de développement plus évolués (refactoring, etc.) ;
  • optimisation des fonctions partielles ;
  • détection de code mort ou inutile (variables, open, champs, constructeurs, labels, etc.) ;
  • émission de directives CFI pour améliorer le debuggage sous GDB.