Caractéristiques de la programmation C qui la rendent unique (et meilleure)

  • Gabriel Brooks
  • 0
  • 4413
  • 785
Publicité

Le langage de programmation C est la mère de tous les langages de programmation modernes. 10 langages de programmation que vous n’avez probablement jamais entendus. 10 langages de programmation que vous n’avez probablement jamais entendu. Il existe des langages de programmation très étranges et bizarres qui ont renversé la logique et ont réussi à rester. fidèle à la science de la communication avec un ordinateur. Vous allez… . Presque toutes les langues utilisées aujourd'hui incluent plusieurs fonctionnalités apparues pour la première fois dans la langue C. Il a été largement utilisé pour écrire des logiciels destinés aux plus petits micro-ordinateurs intégrés, aux plus grands ordinateurs centraux et aux superordinateurs..

Les applications écrites en C couvrent une grande variété de logiciels système, logiciels de bureau, logiciels d’entreprise, bases de données, etc. Vous feriez bien de commencer une carrière en programmation. 10 emplois de programmation informatique en demande actuellement 10 emplois de programmation informatique en cours Demande tout de suite Puisque décrocher un travail de programmation peut être difficile dans le paysage actuel, envisagez de vous concentrer sur l'une des concentrations suivantes pour améliorer vos chances de réussite. avec une connaissance des bases du C.

Une brève histoire de C

Le développement du langage C est très étroitement associé à Unix. Il a été développé vers 1972, avec d’autres ajouts effectués au cours des années suivantes..

Avant que C ne soit développé, le système d'exploitation Unix avait été développé pour l'ordinateur PDP-7 à l'aide de son langage d'assemblage. Plus tard, un compilateur pour C a été construit sur cette plate-forme, utilisant à nouveau le langage assembleur. À cette époque, C était conçu pour faciliter le développement d’Unix lui-même. À l'aide de ce compilateur, Unix a été complètement réécrit en C pour l'ordinateur PDP-11. Et encore une fois, le compilateur en langage C a été réécrit en C (aidé bien sûr par l’excellent Lex et yacc outils), complétant ainsi le processus de démarrage C / Unix.

La principale raison pour laquelle Unix a été réécrit en C était pour la portabilité. Depuis des langages d'assemblage pour différentes architectures de processeur. Petit guide sur le fantastique processeur Threadripper AMD Un bref guide sur le fantastique processeur Thread AMD AMD AMD était dans le désert depuis plusieurs années, mais il est de retour avec une énorme explosion. Le Threadripper AMD est l’un des processeurs grand public le plus puissant du marché, mais est-il bon pour vous? sont différents, le portage du système d’exploitation Unix sur chacun d’entre eux aurait représenté un effort considérable. En développant un langage des systèmes comme C, et en réécrivant le système d'exploitation Unix en C, cet effort a été réduit de plusieurs ordres de grandeur.

Une fois que le langage a été développé, il a été reconnu qu’il pouvait être utilisé pour écrire beaucoup plus que des logiciels système. Et ainsi, C a commencé à être utilisé pour écrire des logiciels tels que des serveurs de fichiers, des serveurs de bases de données, des piles de réseau, des logiciels de bureau et (plus tard) des serveurs Web. Comment transformer un périphérique Android en serveur Web Comment transformer un périphérique Android en Web Serveur Vous souhaitez héberger un site Web simple sans plan d'hébergement coûteux? Voici comment héberger un site Web sur votre téléphone ou votre tablette Android. , etc.

En 1978, Brian Kernighan et Dennis Ritchie ont publié le livre Le langage de programmation C. Ce livre a servi d'informel Spécification du langage C pendant de nombreuses années jusqu’en 1989, année où C fut officiellement normalisé par ANSI. La dernière version de C est C11, publiée en 2011..

Voyons maintenant quelques caractéristiques du C qui le rendent unique.

C vs C ++: sont-ils liés?

Comme des logiciels plus complexes ont été développés en C, il a été reconnu que des concepts orientés objet, tels que l’encapsulation, le polymorphisme, etc., aideraient à gérer la complexité. Cela a conduit au développement de C ++ en tant que super ensemble de C.

C ++ a été construit en ajoutant certaines fonctionnalités pour écrire un logiciel orienté objet, tout en maintenant la compatibilité avec C. Il a été développé avec l’idée de amélioration progressive - apporter des modifications compatibles au langage C afin que les modules C et C ++ puissent être combinés dans le même programme et compilés avec le même compilateur. Cela a permis de réutiliser d'anciens modules basés sur C avec peu de modifications dans un programme plus volumineux écrit à l'aide de concepts orientés objet..

Un programme C peut, en théorie, être compilé par un compilateur C ++ sans aucune modification. Dans la pratique, toutefois, une vérification de type plus stricte appliquée par C ++ entraîne des erreurs, nécessitant certaines modifications du code..

Petit nombre de mots-clés

La langue C a été une langue petite malgré son pouvoir. En effet, il ne déclare que 32 mots en tant que mots clés ayant une signification spécifique. En revanche, C ++ déclare 82 mots-clés, Java a 50 mots-clés réservés et javascript 63. Et COBOL déclare 357 mots-clés. Imaginez le mal de tête de devoir se rappeler et éviter un si grand nombre de mots-clés!

Aucun type de chaîne explicite

Contrairement à la plupart des autres langages modernes. Pour créer une application Android, vous devez apprendre ces 7 langages de programmation. Pour créer une application Android, vous devez apprendre ces 7 langages de programmation. Quel langage de programmation convient le mieux pour créer des applications Android? Cela dépend de votre historique de programmation et des langues avec lesquelles vous vous sentez le plus à l'aise. Heureusement, vous avez des options. tels que Java, C ++ et JavaScript, C ne fournit pas un type séparé pour les chaînes. Une chaîne est considérée comme un tableau de caractères se terminant par un 0 caractère (noté “\ 0”) La longueur de la chaîne est désignée par une convention: le nombre de caractères jusqu’à la 0 caractère. Vous êtes libre de l'ignorer et de compter ou de stocker au-delà de la “\ 0”. Ce manque de type de chaîne et la convention ont abouti à de nombreux bugs au fil des ans, connus sous le nom de débordement de tampon.

En fait, le premier ver à avoir frappé Internet, le Morris Internet Worm, est le résultat d'un tel bogue dans un logiciel système crucial appelé le doigt démon.

Voici un exemple d'un tel bug. Cela illustre à quel point il est facile d’introduire de tels bogues dans un programme. Le programme compile bien, mais se bloque à cause du débordement de tampon.

# include main () char * buf = "hello world"; buf [12] = 'a'; printf ("% s \ n", buf);  

En revanche, la plupart des langages modernes fournissent un type de chaîne explicite qui rend de tels manigances impossibles. Même C ++, qui compile bien le code ci-dessus, fournit une explication std :: string type.

Manipulation de pointeur

Un pointeur est une référence à un emplacement de mémoire. C est complètement flexible pour lire et écrire des emplacements de mémoire arbitraires. Cette flexibilité a un coût considérable et a été à l’origine de nombreux bogues dans l’éventail des logiciels. Parmi les plus notables et affectant l’ensemble de l’Internet figurent de tels bogues dans les serveurs Web, les serveurs de messagerie et les serveurs ftp. Même aujourd'hui, il y a parfois des reportages sur des bugs causés par le référencement et la mise à jour d'emplacements mémoire invalides..

L'infâme SSL HeartBleed Un bogue de sécurité découvert en 2014 résultait d'une gestion inappropriée de l'emplacement des pointeurs et illustrait l'importance cruciale d'une gestion appropriée du pointeur en C.

Même les BSOD occasionnels (“écran bleu de la mort”) les erreurs rencontrées sur les systèmes Windows sont probablement également dues à une gestion incorrecte du pointeur.

Les langages autres que C ++ n'autorisent pas la manipulation de pointeur et ne sont donc pas vulnérables à cette classe de bogues..

Les tableaux et les pointeurs sont interchangeables

En C, les références et les pointeurs sont interchangeables. Le langage autorise l'utilisation d'une référence de tableau. Procédure d'utilisation d'une liste de tableaux Java. Procédure d'utilisation d'une liste de tableaux Java. Une liste de colonnes Java est un tableau redimensionnable à usage général. Il fournit la plupart des fonctionnalités généralement attendues des tableaux dans d'autres langues. Dans cet article, vous apprendrez à configurer et utiliser un répertoire. où un pointeur est requis, et vice versa. Bien que cela permette de puissantes manipulations, il en est résulté de nombreux bogues infâmes..

Large utilisation de “définir” Les macros

Les macros sont utilisées pour substituer un nom à un développement différent. Ils peuvent être utilisés pour modifier la définition d'un nom au moment de la compilation ou pour remplacer un nom simple par une extension plus longue. Le système macro C prend en charge ifdef conditionnels qui permettent la compilation conditionnelle. Il s’agit d’une façon dont le logiciel est porté sur différentes architectures et systèmes d’exploitation. Les noms génériques sont définis et substitués au moment de la compilation avec différentes extensions pour différentes conditions.

Il est également possible d'inclure ou d'éliminer des sections entières de code de la compilation à l'aide de ces macros Vous avez un clavier Razer? Enregistrer des macros est-il facile avec Synapse Vous avez un clavier Razer? Il est facile d’enregistrer des macros avec Synapse Si vous utilisez des périphériques Razer sans tirer parti du logiciel Synapse, vous manquez. Voici comment utiliser les macros efficacement et comment elles peuvent dynamiser votre jeu.. .

Ils sont obsolètes mais disponibles en C ++. D'autres langages tels que Java, JavaScript, python, etc. n'offrent pas une installation similaire.

Modules encapsulés dans des fichiers

C n’a pas le concept de classe et n’appuie donc pas la notion de visibilité séparée publique, privée et protégée. La seule encapsulation fournie par C est celle des fichiers. Les fonctions, les variables globales et les types définis dans un fichier source ne sont visibles dans ce fichier que si les noms sont exportés. Les mots-clés statique et externe sont fournis dans le but de contrôler la visibilité des noms de variable et de fonction.

En revanche, d’autres langages tels que C ++, Java et Python supportent généralement les classes, ainsi que l’encapsulation associée aux classes..

Bibliothèques externes

Outre les constructions de langage de base, des fonctionnalités plus complexes en C sont déléguées à des bibliothèques externes. La manipulation des chaînes, les mathématiques, les entrées-sorties, les réseaux, etc. sont tous fournis par des bibliothèques externes. En revanche, les autres langues sont généralement accompagnées d'une bibliothèque de modules bien fournie, avec le langage lui-même..

Et cela couvre certaines caractéristiques de base du langage C, en particulier celles qui le distinguent des autres langages.

Avez-vous travaillé avec C? Cela vous a plu ou auriez-vous préféré travailler avec une autre langue? S'il vous plaît expliquer dans les commentaires ci-dessous.




Personne n'a encore commenté ce post.

De la technologie moderne, simple et abordable.
Votre guide dans le monde de la technologie moderne. Apprenez à utiliser les technologies et les gadgets qui nous entourent chaque jour et à découvrir des choses intéressantes sur Internet.