Article View: fr.comp.lang.c
Article #15217Re: rot13 [Was : Re: conjugaison et autres ...]
From: Antoine Leca
Date: Wed, 05 Oct 2005 12:05
Date: Wed, 05 Oct 2005 12:05
88 lines
6832 bytes
6832 bytes
En <news:4342ee56$0$27403$8fcfb975@news.wanadoo.fr>, Harpo va escriure: > Pour moi un byte, c'est 8 bits (disons 'g�n�ralement' pour les > puristes), le signe n'est qu'une abstraction. Autrement dit, tu travailles en compl�ment � 2. > Vers le milieu des ann�es 80, Le langage C date du d�but des ann�es 70. � cette �poque, la situation n'�tait pas aussi tranch�e que maintenant ou m�me qu'en 1985. Par exemple, le premier compilateur C (PDP-11) avait des char sign�s sur 8 bits, codage ASCII. Le second (IBM) avait des char non sign�s sur 8 bits, codage EBCDIC. Le troisi�me (GECOS) des char non sign�s sur 9 bits, et Ritchie a choisi le codage ASCII (cette machine manipulait aussi de l'EBCDIC). > IBM a commenc� � s'int�resser � Unix et > au C, on peut dire ce qu'on veut il n'y a pas que des porte-cravate > chez eux, � ce moment ils n'avaient aucun code � casser en C, puisque > tout �tait �crit en assembleur, PL/1, ou Cobol pour les applications > chez les clients. J'ai dans mon dos un AS/400. �videmment, les applications historiques travaillent en EBCDIC en un langage (RPGII) qui ressemble � du PL/1. Mais cette b�cane a aussi un support TCP/IP, un shell semblable � ceux de Unix ou Windows, fait tourner des applis en Java etc., autrement dit il y a pas mal de code C. Je ne sais pas en quel langage est programm� DB/2, mais utiliser C pour cela me semblerait logique. Maintenant, les fichiers de cette b�cane sont pour la majorit� en EBCDIC. Donc, un certain nombre de ces programmes en C ont �t� compil�s avec comme jeu de caract�res l'EBCDIC. Et le plus dr�le, c'est que cela marche tr�s bien. Y compris pour des programmes issus du monde Unix, pas du tout pr�vus au d�part pour utiliser autre chose que de l'ASCII... > Cette histoire de 'machin character set' n'ob�it pas � une n�cessit� > technique mais me semble plut�t venir d'une strat�gie commerciale qui > vise � isoler la client�le en creusant un foss� avec la concurrence > par la non-portabilit�. Mmmmh. Il est �ventuellement possible qu'au tout d�but (vers 1961-63), IBM ait eu cette id�e ; mais en fait cela m'�tonnerait ; je pense que les ing�nieurs d'IBM de l'�poque �taient vraiment convaincus que le jeu de caract�res devait � coller � aux sp�cifications des cartes perfor�es, m�me si dans les faits la plupart des lecteurs/perforateurs utilisaient d�j� des tables de transcodage. Apr�s (vers 1963, quand la norme ASCII s'est cristallis�e), c'est devenu plut�t de la bouderie devant le fait que le standard ne reprenne pas les positions du leader de l'industrie (un peu comme la FSF qui d�cide de r��crire tel ou tel utilitaire parce que le code de machinBSD ne leur plaise pas, ou parce que Microsoft est m�l� de pr�s ou de loin � tel autre. �videmment on peut inverser les noms dans la phrase pr�c�dente ;-).) Dans les ann�es 70, IBM a peut-�tre utilis� sa _diff�rence_ afin de verrouiller ses clients et donc d'augmenter ces marges, mais l� c'�tait de la tactique, pas de la strat�gie ; d'ailleurs, aujourd'hui qu'il n'y a plus gu�re d'avantage � utiliser EBCDIC, cela leur revient dans le dos, c'est normal et m�me pr�vu. Dans les m�mes ann�es 70, DEC, qui n'avait pas de contraintes li�es aux machines � cartes perfor�es existantes ni aux fichiers en BCD, a choisi au contraire de basculer le plus possible vers l'ASCII et les bytes sur 8 bits, l� encore par tactique, mais celle du challenger (innovant). Maintenant, pour ce qui est du C et des encodages pour char, l� il n'y a certainement aucune volont� de bloquer, tout au contraire : Dennis Ritchie avait � sa disposition en 1970-72 d'une part des PDP-11 qui causaient ASCII sur 8 bits de pr�f�rence sign�s, d'autre part des machines GE/Honeywell qui causaient soit ASCII soit (E)BCDIC sur 9 bits (en g�n�ral) de pr�f�rence non sign�s (pas d'op�ration c�bl�e d'extension de signe) ; donc il y a laiss� une certaine marge sur la d�termination de ce qu'est un char, sign� ou pas, 8 ou 9 bits. La suite, c'est s�r que celui qui a eu du succ�s, c'est le premier des deux, et le syst�me Unix qui allait avec. Mais la diversit� des machines du labo de la Bell est rest�e incrust�e dans le langage. Au moment de la norme ANSI, dans les ann�es 80, les normalisateurs (suivant l'exemple du bouquin, le K&R1) n'ont pas d�rog� � cette r�gle, m�me s'il devenait de plus en plus �vident que la tr�s grande majorit� utilisait des char sur 8 bits encod�s en ASCII (pour le signe, il y avait plus de variabilit�). Et aujourd'hui c'est trop tard pour revenir en arri�re l�-dessus, cf. ce que j'�crivais au-dessus sur le code en C �crit ou port� par IBM et consorts (largement apr�s la publication de la norme), sur une machine EBCDIC. Antoine
Technical Details
Message-ID:
<di0fi1$f0o$1@shakotay.alphanet.ch>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!nntp-server.pubsub.com!news.imp.ch!news.imp.ch!80.83.46.147.MISMATCH!news.alphanet.ch!alphanet.ch!not-for-mailReferences:
<1126342327.583568.21420@g43g2000cwa.googlegroups.com> <4329e5d4$0$7846$8fcfb975@news.wanadoo.fr> <dge4b6$fqa$1@reader1.imaginet.fr> <432ab809$0$1734$8fcfb975@news.wanadoo.fr> <mn.84b07d59016a857b.31483@laposte.net> <433f16ac$0$27406$8fcfb975@news.wanadoo.fr> <mn.10907d5a55119e84.15512@YOURBRAnoos.fr> <433f9cb1$0$7821$8fcfb975@news.wanadoo.fr> <mn.128c7d5aa5238de0.15512@YOURBRAnoos.fr> <43403203$0$5388$8fcfb975@news.wanadoo.fr> <43403d27$0$306$7a628cd7@news.club-internet.fr> <dhq3bs$dbc$1@reader1.imaginet.fr> <4340d2c9$0$27410$8fcfb975@news.wanadoo.fr> <dhth76$v57$1@shakotay.alphanet.ch> <4342ee56$0$27403$8fcfb975@news.wanadoo.fr>Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,b21b26167a936e28 X-Google-Attributes: gidf9822,public X-Google-Language: FRENCH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!nntp-server.pubsub.com!news.imp.ch!news.imp.ch!80.83.46.147.MISMATCH!news.alphanet.ch!alphanet.ch!not-for-mail From: "Antoine Leca" <root@localhost.invalid> Newsgroups: fr.comp.lang.c Subject: Re: rot13 [Was : Re: conjugaison et autres ...] Date: Wed, 5 Oct 2005 14:05:20 +0200 Organization: Posted through ALPHANET (http://www.alphanet.ch/) Lines: 89 Sender: antoinel@143.red-217-127-250.staticip.rima-tde.net Message-ID: <di0fi1$f0o$1@shakotay.alphanet.ch> References: <1126342327.583568.21420@g43g2000cwa.googlegroups.com> <4329e5d4$0$7846$8fcfb975@news.wanadoo.fr> <dge4b6$fqa$1@reader1.imaginet.fr> <432ab809$0$1734$8fcfb975@news.wanadoo.fr> <mn.84b07d59016a857b.31483@laposte.net> <433f16ac$0$27406$8fcfb975@news.wanadoo.fr> <mn.10907d5a55119e84.15512@YOURBRAnoos.fr> <433f9cb1$0$7821$8fcfb975@news.wanadoo.fr> <mn.128c7d5aa5238de0.15512@YOURBRAnoos.fr> <43403203$0$5388$8fcfb975@news.wanadoo.fr> <43403d27$0$306$7a628cd7@news.club-internet.fr> <dhq3bs$dbc$1@reader1.imaginet.fr> <4340d2c9$0$27410$8fcfb975@news.wanadoo.fr> <dhth76$v57$1@shakotay.alphanet.ch> <4342ee56$0$27403$8fcfb975@news.wanadoo.fr> NNTP-Posting-Host: 143.red-217-127-250.staticip.rima-tde.net Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-Trace: shakotay.alphanet.ch 1128513922 15384 217.127.250.143 (5 Oct 2005 12:05:22 GMT) X-Complaints-To: usenet@alphanet.ch NNTP-Posting-Date: Wed, 5 Oct 2005 12:05:22 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1506 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506