http://www.safe-c.org

ENGLISH

Le langage de programmation Safe-C


Le langage de programmation Safe-C a été créé en 2011.

Il résulte de l'effort d'une seule personne pour moderniser le langage C grâce aux leçons apprises depuis 1970 dans le domaine de la conception des langages de programmation.

Les objectifs principaux du langage sont :
  1. la vitesse
  2. la fiabilité et protection de la mémoire (en vérifiant les indices de tableaux, les pointeurs, etc ..)

Un compilateur Safe-C pour Windows est disponible à ce lien.



Nous vous proposons les tutorials suivants :



La librairie standard du Safe-C comprend les composants suivants :

aesAES encryption
arithmarithmétique simple (abs, min, max)
base64encodage en base64
bintreearbres binaires équilibrés (AVL)
calendarcalendrier
consoleécriture/lecture sur la boite de commande
crcchecksums md5, sha2, adler et crc
dbdatabase (insert/delete/update/retrieve, transations sur fichiers .db - documentation)
desDES encryption
directxinterface pour DirectX 10 & 11
drawdessiner dans un buffer mémoire (ligne, cercle, texte, image)
exceptiontraitement d'exception
filesfichiers texte et binaire, répertoires, disque.
ftpprotocole pour transfert de fichiers (ftp) - client et serveur
guiinterface utilisateur (fenêtres, listbox, etc ..) avec une fenêtre principale utilisant le composant directx
hashtable de hashage, dictionnaire (clé vers valeur)
httpclient et serveur internet (login, pages html virtuelles, ..)
imagecompression et décompression (jpg, gif, png, ..), traitement d'image
inifilelecture de fichiers .ini
integeropérations sur grands nombres entiers non-signés
linear_algebraopérations sur vecteurs et matrices
mathfonctions mathématiques (sin, cos, ..)
odbcinterface odbc 3.0 pour database sql
opuscodec audio (voir http://www.opus-codec.org/)
pdfcréation de fichiers PDF
printerimprimante
netcardinformations sur les cartes réseaux (spécifique windows)
randomgénération de nombres aléatoires
registryécrire/lire une clé de la base de registre (spécifique windows)
rsaencryption asymétrique
serviceServices Windows - processus d'arrière-plan (spécifique windows)
shortcutinstallation de programmes, créer un shortcut sur le bureau
smtpenvoi d'e-mails par protocole smtp
sortingtri de tableaux (bubblesort, heapsort, quicksort)
soundmicrophone et haut-parleur
stringschaines de caractères (strcpy, sprintf, ..)
systeminformations système (nom du PC, mémoire, nbre de CPUs)
tcpipconnection réseau par tcpip (ipv4 et ipv6)
textstockage d'un texte composé de lignes
threadthreads parallèles, synchronisation, timers
tracingfichiers de trace
urlurl internet
utfconversion entre ascii, utf-8 et utf-16
vpegcompression video pour images avec peu de mouvement
webcaminterface pour source video
wininterface utilisateur pour créer des fenêtres, boutons, listbox, ..
xmllecture de fichiers XML
zipcompression de données : zip, unzip


ainsi que les composants d'API Windows suivants :

win/windowsinterface bas-niveau avec Windows
win/directx11interface bas-niveau avec DirectX 11
win/direct_showinterface bas-niveau avec DirectShow



Le "Safe-C Reference Manual" est une description normalisée du langage Safe-C destiné aux gens qui souhaitent développer un compilateur Safe-C.



Le code source complet du compilateur et des libraries est disponible ici



Si vous vous intéressez à la conception des langages de programmation, je vous recommande les ouvrages suivants grâce auxquels j'ai beaucoup appris :

[1] The Theory and practice of Compiler Writing (Jean-Paul Tremblay, Paul G. Sorenson) 1987 Mc Graw Hill ISBN 0-07Y66616-4, especially chapter 3 Programming-Language Design
[2] A Guide to Modula-2 (Kaare Christian) 1987 Springer Verlag ISBN 0-387-96242-5
[3] Programming Languages (Allen B.Tucker) 1987 McGrawHill ISBN 0-07-Y66617-2
[4] Der Einstieg in C (Paul M.Chirlian) 1985 Markt&Technik ISBN 3-89090-086-0
[5] Understanding Ada, a Software Engineering Approach (Gary Bray, David Pokrass) 1988 John Wiley & Sons ISBN 0-471-87833-2
[6] Software Engineering with Ada (Grady Booch) 1987 Benjamin/Cummings Publishing Company ISBN 0-8053-0604-8
[7] Ada, un apprentissage (M.Gauthier) 1989 Dunord ISBN 2-04-018836-3
[8] Reference Manual for the Ada Programming Language (United States Department of Defense) ANSI/MIL-STD-1815-A (available on the internet) (the original 1983 design is cleaner than the updated 1995 version)
[9] C# Programming Language ISO/IEC23270
[10] GNAT: The GNU Ada Compiler 1984
[11] C Programming Language JTC1/SC22/WG14 N843 1998
[12] C Programming Language ISO/IEC 9899:201x 2008
[13] The Java™ Language Specification 1996-2005
[14] An Overview of Objective Modula-2 Benjamin Kowarsch 2009
[15] C Programming Language (Brian W.Kernighan, Dennis M.Ritchie)
[16] C# Language Specification ECMA-334 4th Edition / June 2006
[17] A History of C++: 1979-1991 Bjarne Stroustrup AT&T Bell Laboratories



Si vous avez des questions ou vous avez besoin d'aide technique :

contact: marcsamu@hotmail.com

réponse en 24 heures.



Historique

Avril 2013
- ajout du composant 'opus' qui est un très bon codec audio open-source.
- nouvelle version du compilateur avec un nouveau warning en cas de clause 'use' inutilisée.

Juillet 2013
- modernisation des composants 'random', 'integer', 'rsa', 'directx', 'win/windows'.

Décembre 2013
- nouveau composant 'gui' pour gérer des fenêtres.

Mars 2014
- nouveau composant 'printer' pour imprimantes.

Mai 2014
- nouveaux composants 'smtp' pour envoyer des emails et 'pdf' pour créer des fichiers PDF.

Nov 2014
- ré-écriture du tutorial "Programmer en Safe-C" qui compte maintenant 18 chapitres et 3 annexes.

Dec 2014
- nouveau composant 'odbc' pour database sql.

Dec 2015
- très légères améliorations dans plusieurs composants. Les librairies sont matures et stables.

Mars 2016
- composant DirectX 10 & 11.

Mai 2016
- nouvelle option pour sauver/charger un jpg avec transparence (ne suit pas le standard jpeg).

Mars 2017
- nouveau composant 'set'.

Juillet 2017
- amélioration composant 'directx'.

Septembre 2017
- ajout du composant 'hash'.

Octobre 2017
- ajout du composant 'shortcut'.