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

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

2022/01/09

exemple-regularite-constance.html

C++

s/o

Comparatif d'opérations bloquante et non-bloquante

2022/01/09

exemple-bloquant-non-bloquant.html

C++

s/o

Générer des paires d'équipes anonymes

2020/11/08

generer_paires_equipes.html

C++

s/o

Service REST d'écho en C#, sans cadriciel

2020/11/02

service_echo_cdiese.html

C#

s/o

Compression RLE naïve

2020/10/29

compression_rle_naive_cdiese.html

C#

s/o

Service REST en JavaScript, sans cadriciel

2020/08/18

service-REST-JavaScript-sans-cadriciel.html

JavaScript, Node.js

s/o

Implémentation relativement complète de lexical_cast

2020/07/06

lexical_cast_complet.html

C++

s/o

Exemple d'implémentation d'une Skip List

2020/03/24

skip_list.html

C++

s/o

Exemple d'allocation assistée, pour placer des objets alloués dynamiquement en mémoire partagée entre plusieurs processus

2020/02/22

AllocationAssistee.html

C++

Microsoft Windows (il faut adapter aux diverses plateformes)

s/o

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

2020/02/08

SmattPointer.html

C++

s/o

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

2020/01/05

comparatif_vecteur_tableau.html

C++

s/o

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

2020/01/05

Mesures--Test0_0.html

C++

s/o

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

2020/01/05

Mesures--Test0_0b.html

C++

s/o

Test comparatif de tris dans divers conteneurs

2020/01/05

Mesures--Test0_1.html

C++

s/o

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

2020/01/05

Mesures--Test1_0.html

C++

s/o

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

2020/01/05

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

2020/01/05

Mesures--Test1_2.html

C++

s/o

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

2020/01/05

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)

2020/01/05

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)

2020/01/05

Mesures--Test2_1.html

C++

s/o

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

2020/01/05

Mesures--Test2_2.html

C++

s/o

Test comparatif de calculs polymorphiques et génériques

2020/01/05

Mesures--Test3_0.html

C++

s/o

Diverses stratégies architecturales pour implémenter une stratégie de croissance de tableau dynamique

2019/10/14

TabDyn--Options.html

Pour les approches individuelles :

C++

s/o

Exemple de multiméthodes

2019/06/25

multimethodes-Exemple.html

C++

s/o

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

2019/06/23

facto-duff.html

C++

s/o

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

2019/03/25

executif.zip

C++, multiprogrammation, STR

Visual Studio 2017

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

2019/03/25

e_s_non_bloquantes.html

C++

s/o

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

2019/02/11

Detection-Fuites.html

C++

s/o

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

2019/01/07

Comparaison-Fonctions-Foncteurs.html

C++

s/o

Exemple d'aréna de capacité fixe

2018/11/01

ArenaFixe.html

C++

s/o

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

2018/11/01

allocateur_arenafixe.html

C++

s/o

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

2018/11/01

allocation_dynamique-Exemple.html

C++

s/o

SCS, client et serveur COM, contexte externe

2018/10/24

COM-Externe-Somme.zip

C++, COM

Visual Studio 2017

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

2023/09/27

COM-Interne-Somme.zip

C++, COM

Visual Studio 2022

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

2018/10/06

COM-Interne-Somme-Decoupe.zip

C++, COM

Visual Studio 2017

Exemples d'implémentation de l'idiome pImpl

2018/09/16

pImpl-exemples.html

C++

s/o

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

2018/09/07

ListeEntiers--comparatif.html

C#, C++, Java

s/o

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

2018/09/07

ListeGenerique--comparatif.html

C#, C++, Java

s/o

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

2018/03/19

bmp00.zip

C++

Visual Studio 2017

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.

2018/03/19

bmp_morcele.zip

C++

Visual Studio 2017

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

2018/01/22

sockets-simpliste-windows.html

ClientTresSimple.zip

ServeurTresSimple.zip

C++, sockets

Visual Studio 2017

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

2017/10/31

Detection-Fuites--Observateur.html

C++

s/o

Chaîne pascal se rapprochant des idiomes C++

2017/08/28

ChainePascal.html

C++

s/o

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

2017/08/27

ChainePascalAvecIterateurs.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

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 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

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 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

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 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

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

Complément d'information sur les pointeurs de fonctions

2011/07/14

Pointeurs-Fonctions-complements.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

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

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

REGISTRY.zip

C++, COM

Visual Studio 2008

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


Valid XHTML 1.0 Transitional

CSS Valide !