Utilisation des variables globales et
locales (octobre 2000)
Chacun connaît la règle : utiliser au maximum des
variables locales. La raison provient de très nombreux
plantages ou anomalies que vous n'avez pas manqué de
rencontrer. Ces plantages découlent de l'utilisation de
variables globales modifiées par plusieurs routines dans un
premier temps de façon voulue puis à votre insu,
quand vous avez utilisé cette variable parce qu'elle
était disponible sans penser à son utilisation
ailleurs. Dans le cas qui nous préoccupe, pas de faux
prétexte, les éditeurs actuels sont suffisamment
souples, la mémoire des ordinateurs ne demande qu'à
être remplie : créez une nouvelle variable locale
chaque fois que vous en sentez le besoin. retour en haut de la page
Installation Mac OS X réussie
(avril 2013)
MacOS X est le système
d'Apple à base d'Unix. Voici ci-après les
opérations que j'ai effectuées pour l'installation de
MacOS version 10.6 et 10.8 avec les outils de développement
XCode.
-> 10.6 : comprend
l'installation de la mise à jour MacOS 10.6.8 V1.1 avec
la mise à jour 14 de Java 1.6.0, de la mise à
jour de sécurité 2013-001, du programme
d'installation de logiciels et de XCode 3.2.6.
-> 10.8 : comprend
l'installation de la mise à jour MacOS 10.8.3, la mise
à jour 2013-002 de Java ainsi du module applet Java
version 7 update 9 et XCode 4.6.2.
(Historique : installation des versions 10.1, 10.3, 10.4).
Retour en haut de la page
Nommer une variable et autres objets
(octobre 2000)
Compilation de 'cc' en natif sur Mac OS X
(août 2001)
OBSOLETE - Pourquoi compiler un compilateur ? En effet, pour le
compiler on doit déjà en posséder un. De plus
il est déjà natif sous Mac OS X, en langage C.
Justement, il est intéressant de greffer sur ce compilateur
C (cc), issu du compilateur de GNU (gcc), d'autres langages comme
le Fortran, le Pascal ou l'Ada.
Nous allons prendre les codes sources proposés sur Darwin
1.3 correspondant à gcc 2.95.2.
Dans un premier temps suivons les instructions pour compiler avec
le package de fichiers à remplacer : gcc_a retour en haut de la page
Les apports de la programmation
orientée objet (septembre 2007)
Quels sont les avantages à utiliser un langage
orienté objet (LOO) ?
Un premier article sur la théorie.
Un second article pratique met en oeuvre
les notions du précédent avec Ada 95 et Ada 2005.
L'unité "Figures" illustre les articles en utilisant les
objets simples avec le code en Ada 95 et celui en Ada
2005.
L'unité "Figures_Abstraites" illustre le texte en Ada
utilisant les objets abstraits avec le code en
Ada 95 et celui
Ada 2005.
L'unité "Figures_Multiples" illustre le texte en Ada
utilisant les interfaces avec le code en
Ada 2005.
Les tours de Hanoï en LOO, exemple du livre "Les langages
à objets" (excellent bien qu'ancien, 1992
déjà) de Michel Beaudouin-Lafon (Armand Colin), avec
le code
Ada 2005 proposant la technique de l'encapsulation des fonctions
constructeurs dans des paquetages locaux ainsi que le code
Ada 2005 proposant la technique des pointeurs sur objets.
Le problème mathématique des tours de Hanoï a
été inventé par Édouard Lucas en 1883
(voir plus sur Wikipédia). Retour en haut de la page
Construire un code source (septembre
2006)
Quel que soit le langage
utilisé, il est important de structurer le code source d'un
programme. Plus le texte sera agréable à l'oeil dans
sa structuration, plus il sera compréhensible
instantanément, donc moins il y aura d'erreur. L'utilisation
d'un reformateur de code avant toute comparaison ou archivage nous
apporte une grande aide dans cette tâche. Retour en haut de la page
Beaucoup de trucs et astuces circulent dans les forums pour
pouvoir utiliser des caractères spéciaux dans le
terminal de Mac OS X. Pour ma part, avec les options par
défaut du terminal, j'obtiens les caractères
suivants:
{ : <opt>-(
} : <opt>-)
[ : <maj>-<opt>-(
] : <maj>-<opt>-)
| : <maj>-<opt>-L
\ : <maj>-<opt>-<: />
Il en manque deux essentiels : ~ et `. Pour ceux-là, il est
nécessaire d'ajouter les deux lignes suivantes dans le
fichier .tcshrc à la source de votre répertoire
d'utilisateur:
# ctrl-N
bindkey -s "\016" "~"
# touche "`"
bindkey -s "\000" "`"
Je n'ai pas trouvé de man sur bindkey mais "bindkey -h"
donne un aperçu de la commande.
Avec la mise à jour 10.1.1 ` et ~ s'obtiennent
traditionnellement :
` : <` £>
~ : <opt>-N
L'utilisation de bindkey n'est plus nécessaire. Retour en haut de la page
Programmer avec Logo (août 2001)
Langage d'apprentissage de la programmation, dans lequel on
donne des ordres à une « tortue », qui porte un
crayon et peut donc dessiner quand elle se déplace. La
syntaxe en français permet l'accès au langage aux
plus jeunes - même si le langage ne se limite pas à
eux. On peut aussi grouper les instructions dans des
procédures. Créé en 1971 au MIT, c'est un
petit cousin du LISP.
On est cependant confronté à plusieurs dialectes Logo en anglais et en
français. Certains sont plus riches que d'autres. J'ai mis
les différents dialectes Logo en français que j'ai
retrouvé. J'ai mis celui présenté par feu
Hebdogiciel dans ses pages pédago, avec le Logo de l'Apple
II qui apparaissait assez complet. J'ai ajouté les deux Logo
actuel en français que j'ai trouvé sur la grande
toile MSW et LWH.
A propos de ce dernier je n'y pas trouvé d'instruction
concernant les listes...
La colonne Logo FR est mon interprétation toute personnelle
de l'équivalent anglais. Retour en haut de la page
Programmer à quel prix ? (octobre
2012)
Le matériel minimum indispensable (ordinateur et
accessoires) pour satisfaire son hobby "la programmation" avec son
prix à y mettre
réactualisé avec les MacBookPro, iMac et MacMini (le
premier prix a démarré avec l'iMac G3 ensuite avec
l'eMac G4 puis avec le MacMini complété par clavier,
souris, écran, CD/DVD). Retour en haut de la page
Utilisation de GDB avec Ada
(décembre 2012)
GDB peut paraître rudimentaire. Il est néanmoins
efficace pour déverminer les
programmes Ada en utilisant les points d'arrêt, le pas
à pas, les exceptions et les tâches Ada. Retour en haut de la page
Exécution asynchrone et
multitâche (juin 2002)
Une grande part des algorithmes sont décris comme une
suite d'opérations exécutées en
séquences de façon synchrone, hors le besoin en exécution asynchrone
évolue, mais pas forcément les solutions pour y
répondre. Utilisation des possibilités du multitâche natif du
langage Ada. Retour en haut de la page
Le standard POSIX avec Ada (août
2012)
Sans parvenir à s'imposer complètement, tous les
systèmes d'exploitation ou presque, y compris Windows, se
réclament de POSIX; explications avec la
bibliothèque Posix Ada Florist GPL
2012 (y compris pour windows avec WPOSIX janvier 2012) et quelques programmes de
test. Retour en haut de la page
Comment migrer de Pascal à Ada
(juillet 2007)
Une solution existe pour redonner vie à d'anciens
programmes écrits en Pascal : utiliser Ada ! Cette solution
permet de bénéficier des avantages d'un langage
moderne, complet et disponible sur de nombreuses plates-formes.
Une grande aide nous vient de l'utilitaire P2Ada qui opère automatiquement
la majeure partie de la traduction Pascal vers Ada.
Ce mois ci découvrons l'installation et
l'utilisation de P2Ada avec un programme simple, un
programme graphique
et un programme
objet. Retour en haut de la page
Analyse descendante et ascendante
(novembre 2002)
Que sont exactement les analyses descendante et ascendante en
programmation ? Laquelle appliquer ? Voici quelques réponses. Retour en haut de la page
Choisir une licence de publication
(janvier 2004)
Écrire des programmes informatiques, c'est bien. Les
publier sur Internet par exemple c'est mieux. Mais sous quelle
forme ?
Voyons d'abord quelques licences existantes (APSL, GPL, ACL, GMGPL)
ainsi que le brevet logiciel, l'utilité d'une licence et
enfin le choix. Retour en haut de la page
Encoder son adresse e-mail (octobre
2003)
Les robots chercheurs d'adresses e-mail sont des logiciels
automatisés qui parcourent inlassablement les pages HTML sur
Internet pour collecter les adresses e-mail à l'insu de
leurs propriétaires. Les adresses sont ensuite
utilisées pour le Spam (envoi répété de
messages indésirables) ou de virus pour démultiplier
la diffusion par messagerie. Afin d'être passe partout sur
Internet (codage ASCII pur), le codage HTML permet d'utiliser des
caractères accentués avec une séquence
"&...;", par exemple le "é" est codé
"é". Cela fonctionne aussi pour les caractères
ASCII normaux comme le "a" est codé "a". Attention
certains éditeurs HTML en Wysiwyg vont retransformer le code
en clair ! Pour éviter cela, il faut alors l'insérer
dans une commande du type : "document.write('<a href=
"mailto:'+
'totot @'+
'toto.com'+
'">'+'toto'+'</a>');"
Nous pouvons alors coder notre adresse e-mail en HTML, aller voir
le code de la page "Contact". Elle
n'apparaît plus en clair dans le code source HTML, disparu le
fameux "@", clé de recherche utilisée par les robots.
Pour combien de temps encore? Retour en haut de la page
Installation de MySQL 4.1.4 (octobre
2004)
MySQL est un système de
gestion de bases de données relationnelles (SGBDR)
basé sur le langage SQL. Il s'agit d'un langage
normalisé de requêtes pour bases de données
relationnelles (Strutured Query Language) créé dans
les années 70 par E. F. Codd d'abord pour IBM puis repris
par Oracle. Maintenant disponible par tout un chacun sur Mac, installons MySQL dont la
renommée n'est pas à faire avec son pilote JDBC. Le
texte contient aussi les commandes SQL usuelles. Retour en haut de la page
Installation de Tomcat 5.0.28 (octobre
2004)
Tomcat est un serveur de
"servlets" JAVA. Ces applications accessibles par Internet en Java
et s'exécutant sur le serveur Web. De la même veine
que le serveur HTTP Apache déjà présent sur
Mac OS X, installons Tomcat. Le
package TomcatStartupItem
permet à Tomcat de démarrer automatiquement à
l'initialisation du Mac. Retour en haut de la page
Installation de Jalopy (septembre
2008)
Jalopy est un formateur de code
source pour le langage de programmation Java. Il applique des
règles largement paramétrables pour produire un style
clair et reproductible. Le formatage d'un code source est
particulièrement utile lorsque des modifications sont
apportées par plusieurs personnes avec des styles de codage
différents car cela permet d'uniformiser le code source
avant de visualiser les différences avec la
précédente version par exemple. C'est utile aussi
pour une personne seule dont le style de codage est erratique ;-)
Installons sur Mac OS X ce
programme sous licence BSD. Retour en haut de la page
Installation de Checklink 4.81
(septembre 2012)
Checklink est un programme
qui vérifie les balises liens et les balises ancres d'un
document HTML avec les protocoles HTTP ou HTTPS. Pour les liens la
vérification porte sur la validité de l'URL
donnée par le lien en incluant les fragments
(référence aux balises ancres). L'unicité des
balises ancre au sein d'un même document est également
vérifié. La vérification peut se faire de
manière récursive sur les liens du document HTML. Installons sur MacOS 10.8 ce
programme écrit en Perl. Retour en haut de la page
Comment programmer l'affichage correct
des accents ? (mars 2005)
D'une question apparemment simple, attention à ne pas
être piégé par les apparences. Les langages de
programmation - essentiellement d'origines américaines -
n'ont vraiment intégré l'accentuation que très
récemment.
Cet article est certainement valable aussi pour de nombreux
langages de programmation. Je vais, cependant, l'illustrer avec le
langage Ada. Retour en haut de la page
Utilisation des exceptions Ada avec GNAT
(mars 2012)
Durant le fonctionnement d'un programme en Ada, les anomalies
issues du système comme celles détectées par
le programme sont transformées en exceptions. Ada nous
propose un certain nombre de façons de réagir face
à la levée d'une exception comme ne rien faire se qui
va provoquer l'arrêt du programme. Parfois, voire souvent, il
est utile d'obtenir plus d'information sur l'origine de l'anomalie
comme identifier ou tracer la procédure où elle a
été déclenchée. GNAT nous vient en aide en enrichissant
les informations proposées de base par Ada sur les exceptions. Contient
également le code de l'unité remplaçant
l'utilisation de addr2line par atos pour les versions de Mac OS X
supérieure ou égale à 10.5. Retour en haut de la page
Utilisation des systèmes d'aide Unix
(juin 2007)
Outre le système d'aide présent dans les
applications Mac. Les commandes du Terminal ont aussi leur
système d'aide. Sur les systèmes de type Unix, l'aide
peut être invoquée de plusieurs façons : les
commandes man, info, whatis, apropos et help. Retour en haut de la page
Les systèmes CVS, SVN et GIT de
contrôle des versions d'un logiciel (avril 2013)
Concurent Versioning System (CVS) est un système de
contrôle des versions d'un logiciel comprenant un serveur
de code source et de plusieurs outils. Les systèmes de
contrôle de version sont généralement
utilisés dans le cycle de développement d'un
logiciel pour suivre et coordonner les changements du code
source au sein de l'équipe de développement. Un
serveur CVS est adapté à la
spécificité du développement logiciel avec
des fichiers au format texte, avec un grand nombre de fichiers,
avec des modifications simultanés et avec des livraisons
multiples.
Voyons maintenant son fonctionnement.
Subversion-SVN est aussi un gestionnaire de
codes sources.
Voyons son fonctionnement en
mode basique, avec modifications en local.
Comment vérifier une signature
électronique ? (janvier 2007)
Avec la prolifération des virus et autres pirates
informatiques, l'installation sur son ordinateur du moindre
programme anodin est source d'inquiétude. La question est :
Comment s'assurer que le programme à installer provient bien
de l'éditeur souhaité et non d'un autre beaucoup
moins souhaité ? Voyons maintenant quelques solutions (sha1, md5 et
pgp). Retour en haut de la page
Comment transmettre les évolutions
d'un code source ? (octobre 2007)
Transmettre directement le code source modifié complet
n'est souvent pas la bonne approche. Du côté du
réceptionnaire, le code source a certainement
évolué également, en récupérant
le code complet, il perdra ses modifications. Voyons maintenant
comment fusionner (patcher)
les évolutions. Retour en haut de la page
Comment migrer de C vers Ada
(décembre 2007)
Une solution existe pour la traduction de fichiers
d'en-têtes en C en unités Ada afin de s'interfacer
avec les bibliothèques correspondantes. Cette grande aide
nous vient de l'utilitaire C2Ada qui
opère automatiquement la majeure partie de la traduction C
vers Ada. C2Ada fait également bien mieux en traduisant
aussi du code complet en C en code Ada.
Ce mois ci, découvrons l'installation et l'utilisation de
C2Ada avec quelques améliorations. Retour en haut de la page
Utilisation du compilateur Ada GNAT et de
GPS (avril 2013)
GNAT : Quelques rappels et
astuces sur l'utilisation de GNAT (voir son installation sur Mac
en page créations).
Au sommaire, l'utilisation avec le terminal, la convention
spécifique des noms de fichiers, les options
indispensables (pour maximum d'information à la
compilation, pendant le déverminage et un maximum de
performance à l'exécution), l'utilisation de
bibliothèques par défaut, l'analyse de la
complexité, la conversion du code source en HTML, les
pragma utiles, une astuce pour pragma Inline / Import / Export
et les nouvelles options de GNAT 2012 notamment avec le dernier
standard Ada 2012. Ce mois ci découvrons le formateur de
code source gnapp.
GNAT : Nous allons aborder dans ce tutoriel comment
créer notre propre bibliothèque Ada pour
une utilisation avec un programme principal en Ada puis aussi
avec un programme principal en C ou en Objective-C. Ce mois-ci,
une bibliothèque Ada statique indépendante puis
une bibliothèque externe pour utilisation en C (appelle
d'une procédure Ada) et avec XCode en Objective-C
(appelle en Ada d'une méthode d'instance et d'une
méthode de classe) : Sources
- Objective-C 2.0 et Ada 2005 - avril 2013, résultats.
GPS : Les premiers pas
(1 Mo) avec l'environnement intégré de
développement GPS (voir son
installation sur Mac PPC en page créations).
Au sommaire son installation sur Mac Intel, intégration
à X11, création d'un projet et quelques astuces
d'édition et de recherche.
Le but n'est pas de convertir au langage Ada les programmeurs
Java. Bien d'autres notamment sur Internet apporteront
l'argumentaire pour cela bien mieux que nous pourrions le faire.
Les questions sont plutôt tournés vers les
programmeurs en Java qui s'essaye à Ada, comme :
où trouver un compilateur ?
quelles sont les structures de programmation ?
quelles sont les bibliothèques ?
Rien ne nous empêche alors de profiter de l'énorme
potentiel d'Ada même venant de Java, ce que nous allons voir
en détail. Une grande aide viendra de l'utilitaire J2Ada qui opère
automatiquement la majeure partie de la traduction Java vers
Ada.
Ce mois ci, découvrons les premiers pas en Ada
avec le compilateur GNAT, les équivalences Ada des
structures Java (commentaires, types de bases, cararactères,
instructions, expressions, exceptions, tableaux, tableaux anonymes,
tableaux multi-dimensionnels, les classes, les méthodes,
les constructeurs) avec le source des exemples (Ada
2005 - V1.3a). Retour en haut de la page
Installation et utilisation
d'AdaStudio (décembre 2010)
Visual Ada Developer (VAD) est un logiciel libre basé sur
TCL/TK (Tool Command Language/ToolKit) pour construire des
interfaces utilisateurs graphiques en Ada. Les applications
créées par VAD sont portables sur Mac, Windows, Linux
ou OS/2. VAD est présent sur le site Internet de son auteur
Leonid Dulman.
Ce mois-ci voyons son utilisation (608 Ko)
avec comment construire VAD à partir du code source puis les
premiers pas de la construction d'une interface utilisateur
graphique. Retour en haut de la page
Utilisation de la bibliothèque
graphique GTKAda (décembre 2012)
GTKAda est la boite à outil
graphique en Ada 95 basée sur GTK+ pour construire des
applications portables sur la plupart des plates-formes, voir son
installation pour Quartz et
X11.
Ce mois-ci voyons son utilisation (646 Ko)
avec xterm, GPS puis les premiers pas de la construction d'une
interface utilisateur graphique avec Glade (GtkBuilder) et Gate3
(source de
l'exemple - Ada) ainsi que la gestion des
événements, des widgets button, label, text entry,
check button et cursor (source de l'exemble -
Ada); la bibliothèque graphique Cairo (source de l'exemple - Ada), le
multi-tâche (source de l'exemple - Ada); et les
évènements. Retour en haut de la page