Sources de divers exemples

Vous trouverez ici des exemples et des projets entiers, parfois même des groupes de projets (typiquement pour mes cours de systèmes répartis comme ceux touchant le parallélisme ou ceux qui exploitent l'approche client/ serveur). Les explications associées à ces exemples sont offertes dans les divers cours qui les utilisent; la présente page, elle, se contente de rendre disponibles les exemples, pas de les situer.

Remarquez la colonne indiquant la version de l'IDE utilisé pour le ou les projets et celle indiquant la date de plus récente mise à jour. Certains exemples sont récents alors que d'autres sont assez vieux. La qualité des exemples peut donc varier beaucoup.

Description Mise à jour Lien Technologies IDE

Esquisse d'un exécutif, pouvant être utile dans un STR

2017/04/10

executif.zip

C++, multiprogrammation, STR

Visual Studio 2017

Implémentation relativement complète de lexical_cast

2017/04/04

lexical_cast_complet.html

C++

s/o

Ordonnanceur statique de tâches qui, dans une optique de résilience, vise à ne pouvoir être compilé que s'il peut rencontrer les contraintes imposées pas les tâches qui lui sont soumises (attention : projet expérimental!)

2017/03/20

ordonnanceur_periodique_statique.zip

C++, STR

Visual Studio 2017

Ébauche de pointeur intelligent avec sémantique de duplication, le tout par politiques

2017/02/22

SmattPointer.html

C++

s/o

Exemple comparatif d'implémentations d'une liste simplement chaînée générique dans divers langages

2017/02/19

ListeGenerique--comparatif.html

C#, C++, Java

s/o

SCS, client et serveur COM, contexte interne, avant refactorisation

2016/10/03

COM-Interne-Somme.zip

C++, COM

Visual Studio 2015

SCS, client et serveur COM, contexte interne, après refactorisation

2016/10/03

COM-Interne-Somme-Decoupe.zip

C++, COM

Visual Studio 2015

SCS, client et serveur COM, contexte externe

2016/10/03

COM-Externe-Somme.zip

C++, COM

Visual Studio 2015

Exemple détaillé de surcharge des opérateurs d'allocation et de libération dynamique de mémoire, avec infrastructure de test

2016/10/03

allocation_dynamique-Exemple.html

C++

s/o

Exemple d'approche pour implémenter une stratégie de croissance dans un tableau dynamique, version où le comportement est implémenté de manière collaborative et polymorphique

2016/10/02

TabDyn--Collaboratif-Polymorphique.html

C++

s/o

Exemple d'approche pour implémenter une stratégie de croissance dans un tableau dynamique, version où le comportement est implémenté de manière collaborative et générique (à l'aide de programmation par politiques)

2016/10/02

TabDyn--Collaboratif-Generique.html

C++

s/o

Exemple d'approche pour implémenter une stratégie de croissance dans un tableau dynamique, version où le comportement est implémenté directement dans la classe

2016/10/02

TabDyn--Local.html

C++

s/o

Exemple d'approche pour implémenter une stratégie de croissance dans un tableau dynamique, version où le comportement est implémenté de manière polymorphique mais introduit un bris d'encapsulation.

2016/10/02

TabDyn--Hierarchique-A.html

C++

s/o

Exemple d'approche pour implémenter une stratégie de croissance dans un tableau dynamique, version où le comportement est implémenté de manière polymorphique sans introduire de bris d'encapsulation, mais qui implique un raffinement de l'interface en comparaison avec ceci

2016/10/02

TabDyn--Hierarchique-B.html

C++

s/o

Exemple d'approche pour implémenter une stratégie de croissance dans un tableau dynamique, version où le comportement est implémenté par mixin

2016/10/02

TabDyn--Mixin.html

C++

s/o

Exemple d'approche pour implémenter une stratégie de croissance dans un tableau dynamique, version où le comportement est implémenté par injection de parents

2016/10/02

TabDyn--Injection-Parent.html

C++

s/o

Exemple de sockets de type flux, exemple très simple (beaucoup trop simple pour du code réel). Surtout utile pour s'acclimater à la syntaxe

2016/05/03

sockets-simpliste-windows.html

ClientTresSimple.zip

ServeurTresSimple.zip

C++, sockets

Visual Studio 2015

Exemple d'implémentation d'un serveur d'entrées/ sorties non-bloquant.

2016/03/13

e_s_non_bloquantes.html

C++

s/o

Serveur d'écho « enrobé » à travers UDP

2016/01/21

serveurUDP.zip

C++, sockets

Visual Studio 2015

Client pour un serveur d'écho « enrobé » à travers UDP

2016/01/21

clientUDP.zip

C++, sockets

Visual Studio 2015

Listes doublement chaînées avec noeuds sentinelles

2015/11/02

Liste-Sentinelles.html

C++

s/o

Exemple d'implémentation d'une Skip List

2015/04/18

skip_list.html

C++

s/o

Exemple de métaprogrammation statique

2015/03/20

static_exemples.html

C++

s/o

Exemple fait d'un ensemble de fichiers implémentant la technique décrite dans l'article sur l'ordonnancement de singletons statiques

2015/03/16

SingletonContext.zip

C++

Visual Studio 2015

Illustration de Duff's Device à l'aide du calcul d'une factorielle.

2015/03/09

facto-duff.html

C++

s/o

Programme de compression RLE de fichiers bitmaps, version s'un seul tenant. Rapide, mais pas un STR.

2015/02/05

bmp00.zip

C++

Visual Studio 2013

Programme de compression RLE de fichiers bitmaps, version plus raffinée que la précédente et, en particulier, morcelable, susceptible d'être intégrée à un STR.

2015/02/05

bmp-morcele.zip

C++

Visual Studio 2013

Test comparatif de « performances » entre utilisation de fonctions et de foncteurs

2015/01/10

Comparaison-Fonctions-Foncteurs.html

C++

s/o

Comparatif de boucles à rythme régulier et à rythme constant

2015/01/05

exemple-regularite-constance.html

C++

s/o

Comparatif d'opérations bloquante et non-bloquante

2015/01/05

exemple-bloquant-non-bloquant.html

C++

s/o

Implémentation complète d'un système client/ serveur d'écho par sockets, mais de manière contemporaine. Ce projet est susceptible de vous intéresser si vous souhaitez utiliser des sockets de type flux en C++. Portez attention au programme principal pour voir comment profiter des outils qui y sont proposés.

2014/11/10

comm_center.zip

C++

Visual Studio 2014

Exemple de calcul générique de l'écart type

2014/04/26

ecart_type-Exemple.html

C++

s/o

Exemple de calcul générique de la moyenne

2014/04/26

moyenne-Exemple.html

C++

s/o

Exemple d'un petit type uplet maison

2014/03/27

uplet_maison.html

C++

s/o

Exemple d'implémentation d'un allocateur utilisant une aréna d'objets de taille fixe.

2014/02/16

allocateur_arenafixe.html

C++

s/o

Exemple d'implémentation de délégué pour opérations unaires. Version reposant sur l'allocation positionnelle.

2014/02/06

Exemple-delegue-noalloc.html

C++

s/o

Exemple d'implémentation de délégué pour opérations unaires. Version reposant sur l'allocation dynamique de mémoire.

2014/02/06

Exemple-delegue.html

C++

s/o

Test comparatif d'insertions dans divers conteneurs (avec push_back())

2014/01/04

Mesures--Test0_0.html

C++

s/o

Test comparatif d'insertions dans divers conteneurs (avec insert())

2014/01/04

Mesures--Test0_0b.html

C++

s/o

Test comparatif de tris dans divers conteneurs

2014/01/04

Mesures--Test0_1.html

C++

s/o

Test comparatif de cumul (manuel) de valeurs dans divers conteneurs

2014/01/04

Mesures--Test1_0.html

C++

s/o

Test comparatif de cumul (avec variable globale) de valeurs dans divers conteneurs

2014/01/04

Mesures--Test1_1.html

C++

s/o

Test comparatif de cumul (avec variable cumulative suppléée par référence) de valeurs dans divers conteneurs

2014/01/04

Mesures--Test1_2.html

C++

s/o

Test comparatif de cumul (avec foncteur simple) de valeurs dans divers conteneurs

2014/01/04

Mesures--Test1_3.html

C++

s/o

Test comparatif de comptabilité d'éléments pour lesquels un critère s'avère (manuel, algorithme standard)

2014/01/04

Mesures--Test2_0.html

C++

s/o

Test comparatif de recherche d'éléments pour lesquels un critère s'avère (manuel, algorithme standard)

2014/01/04

Mesures--Test2_1.html

C++

s/o

Test comparatif de recherche d'élément (manuel, algorithme standard)

2014/01/04

Mesures--Test2_2.html

C++

s/o

Test comparatif de calculs polymorphiques et génériques

2014/01/04

Mesures--Test3_0.html

C++

s/o

Exemple comparatif de manipulation de fonctions dans divers langages

2013/10/28

Fonctions--comparatif.html

C#, C++, Java, JavaScript

s/o

Exemple comparatif d'implémentations de fonctions variadiques dans divers langages

2013/10/09

Variadiques--comparatif.html

C#, C++, Java

s/o

Exemple comparatif d'implémentations d'une liste simplement chaînée d'entiers dans divers langages

2013/09/23

ListeEntiers--comparatif.html

C#, C++, Java

s/o

Exemple de pipeline générique

2013/06/21

Pipeline-generique.html

C++

s/o

Pile générique (capacité dynamique)

2013/05/02

PileGeneriqueNoeuds.html

C#

s/o

Pile générique (capacité fixe)

2013/05/02

PileGenerique.html

C#

s/o

Pile d'entiers

2013/05/02

PileEntiers.html

C#

s/o

Entrées/ sorties sur des fichiers texte

2013/04/25

Cdiese--EntreesSortiesTexte.html

C#

s/o

Échange de  données entre deux threads par zone de transit synchronisée par mutex

2013/03/28

zone_transit.html

C++

s/o

Exemple simple de génération de données avec et sans bruit

2012/12/04

generateur_donnees_bruit.html

C++

s/o

Exemple simple de génération de données avec et sans bruit

2012/12/04

generateur_donnees_bruit.html

C++

s/o

Exemple d'aréna de capacité fixe

2012/05/18

ArenaFixe.html

C++

s/o

Exemple de détection des fuites de mémoire par surcharge de quelques versions des opérateurs new et delete

2012/05/17

Detection-Fuites.html

C++

s/o

Comparatifs de « performances » entre un tableau brut alloué dynamiquement et un vecteur standard

2012/01/16

comparatif_vecteur_tableau.html

C++

s/o

Exemple de multiméthodes

2011/10/15

multimethodes-Exemple.html

C++

s/o

Exemple de tableau dynamique générique « vanille »

2011/09/30

TabDyn--Vanille.html

C++

s/o

Implémentations simples de pile générique dont la capacité est déterminée à la compilation. Inclut une implémentation qui choisit, à la compilation, son implémentation sous-jacente.

2011/09/14

pile_generique_capacite_statique.html

C++

s/o

Implémentation simple de pile générique dont la capacité est déterminée de manière dynamique.

2011/09/14

pile_generique_capacite_dynamique.html

C++

s/o

Raffinement plus poussé de sliste, liste générique simplement chaînée

2011/09/10

sliste-Exemple-encore-mieux.html

C++

s/o

Raffinement plus poussé de sliste, liste générique simplement chaînée

2011/09/10

sliste-Exemple-mieux.html

C++

s/o

Raffinement plus poussé de sliste, liste générique simplement chaînée

2011/09/10

sliste-Exemple-base.html

C++

s/o

Exemple de détection des fuites de mémoire par surcharge de quelques versions des opérateurs new et delete en appliquant le schéma de conception Observateur

2011/07/14

Detection-Fuites--Observateur.html

C++

s/o

Complément d'information sur les pointeurs de fonctions

2011/07/14

Pointeurs-Fonctions-complements.html

C++

s/o

Exemples d'implémentation de l'idiome pImpl

2011/07/14

pImpl-exemples.html

C++

s/o

Exemple de regroupement de threads et de futures

2011/02/21

Thread-Pool--Futures.html

C++

s/o

Serveur de clavardage multiclients

2011/01/15

ServeurClavardage.zip

C++, sockets

Visual Studio 2008

Client de clavardage

2011/01/15

ClientClavardage.zip

C++, sockets

Visual Studio 2008

Chaîne pascal se rapprochant des idiomes C++

2011/01/15

ChainePascal.html

C++

s/o

Chaîne pascal se rapprochant des idiomes C++ (avec itérateurs)

2011/01/15

ChainePascalAvecIterateurs.html

C++

s/o

Un exemple d'équivalent statique de std::accumulate()

2010/12/01

static_accumulate.html

C++

s/o

Quelques exemples de métaprogrammation appliquée

2010/11/29

Metaprog-Exemples.html

C++

s/o

SCS, client COM, serveur .NET

2010/10/28

Client-COM-Serveur-NET.zip

C++, C#, COM, .NET

Visual Studio 2008

SCS, client et serveur COM, contexte externe, fait pour identifier un bogue dans un exécutable distant

2010/09/13

COM--Externe--Somme--Debogage.zip

C++, COM

Visual Studio 2008

SCS, client .NET, serveur COM

2010/09/13

Client-NET-Serveur-COM.zip

C++, C#, COM, .NET

Visual Studio 2008

Code serveur pour sockets de type flux, reposant sur une bibliothèque maison, avec support pour la généricité (perfectible, en utilisant des traits à certains endroits)

2010/09/12

SocketFluxServeur.zip

C++, sockets

Visual Studio 2008

Bibliothèque maison pour sockets de type flux, avec support pour la généricité (perfectible, en utilisant des traits à certains endroits)

2010/09/12

SocketFluxLib.zip

C++, sockets

Visual Studio 2008

Code client pour sockets de type flux, reposant sur une bibliothèque maison, avec support pour la généricité (perfectible, en utilisant des traits à certains endroits)

2010/09/12

SocketFluxClient.zip

C++, sockets

Visual Studio 2008

Code serveur pour sockets de type flux, avec une strate OO naïve mais accessible

2010/09/12

ServeurTresSimpleOO.zip

C++, sockets

Visual Studio 2008

Code client pour sockets de type flux, avec une strate OO naïve mais accessible

2010/09/12

ClientTresSimpleOO.zip

C++, sockets

Visual Studio 2008

Démonstrateur de l'approche multiprogrammée Map/ Reduce, à l'aide d'un Thread Pool et de programmation par promesses (mieux connues sous le nom de futures), implémentation maison

2010/03/05

MapReduce.zip

C++, multiprogrammation

Visual Studio 2008

Un entier encapsulé de manière à ce qu'on puisse essentiellement itérer sur ses bits (un exercice de style)

2008/07/10

SequenceBits.zip

C++

Visual Studio 2008

Code d'accès au registre pour inscription des serveurs COM. Prudence : le code des serveurs plus récents (plus haut) est peut-être plus à jour

2008/02/13

STRY.zip">REGISTRY.zip

C++, COM

Visual Studio 2008

D'autres suivront quand j'aurai quelques minutes...


Valid XHTML 1.0 Transitional

CSS Valide !