Un cop d’ull a la història dels llenguatges de programació C

En una època amb altres llenguatges de programació de propòsit general disponibles, com Java, Python i Ruby, C i els seus diversos .NET relacionats segueixen sent llenguatges importants per als desenvolupadors. Malgrat la seva edat, els desenvolupadors de tot el món encara treballen habitualment en C, C#, C++ i Objective-C per crear carteres sofisticades d’aplicacions modernes.

Aquest article fa una ullada ràpida a la història històrica del llenguatge de programació C i el seu paper en els esforços de desenvolupament de programari d’alt nivell. En comprendre la seva història, els desenvolupadors poden obtenir el context necessari per entendre què fa que els llenguatges basats en C siguin útils per a la gestió de sistemes integrats, el processament dinàmic de dades i altres projectes de programació complexos.

El començament de C

La història del llenguatge de programació C va començar amb el seu ús per moure el codi del nucli dins del sistema operatiu Unix original d’AT&T. L’objectiu era dur a terme el procés de moure un nucli, o nucli, d’una aplicació utilitzant el mínim de línies de codi que sigui possible.

Ken Thompson, un empleat de Bell Labs, ja s’havia esforçat a crear un llenguatge de programació per a la plataforma Unix que pogués assolir aquest objectiu. Això va donar lloc a una versió modificada del llenguatge de programació combinat bàsic (BCPL) que va anomenar B, que presentava característiques com ara operadors d’assignació generalitzats per a càlculs i una sintaxi simplificada.

Un altre empleat de Bell Labs, Dennis Ritchie, va acabar basant-se en el treball de Thompson per crear C el 1972, centrant-se a abordar algunes de les debilitats del model semàntic de B, com ara els seus mecanismes de manipulació de caràcters, així com el seu enfocament lent de codi enfilat. Finalment, el llenguatge va portar els fonaments de la BCPL existent i el va impregnar d’una estructura de tipus pròpia.

Tot i que el desenvolupament del sistema operatiu Unix va començar el 1969, el seu codi es va reescriure del llenguatge assemblador a C el 1972. El disseny de C com a llenguatge d’implementació del sistema Unix està documentat en un article de Bell Labs titulat “El desenvolupament del llenguatge C”.

Les primeres implementacions de C

A principis de 1973, el llenguatge C modern estava complet i el seu compilador era prou potent com per garantir la implementació en diversos sistemes de programari de Bell. Amb el temps, el sistema operatiu Unix basat en C va obtenir ús en entorns acadèmics i organitzatius governamentals orientats a la investigació.

El 1978, Dennis Ritchie i Brian Kernighan van publicar el llibre El llenguatge de programació Cque va servir com a font de referència comuna per a C. Aquest període de la història de C es coneix sovint com la versió K&R de C, en referència a Kernighan i Ritchie.

Aquesta nova iteració de C comptava amb noves funcions de desenvolupament innovadores, com ara:

  • una biblioteca d’E/S estàndard;
  • tipus de dades int sense signar i llarg;
  • diversos operadors d’assignació composta (com ara =>);
  • funcions void();
  • assignacions de tipus de dades struct;
  • tipus enumerats; i
  • la capacitat d’emmagatzemar diferents tipus de dades en una ubicació de memòria.

L’any 1983, l’American National Standards Institute (ANSI) va establir l’ANSI X3.159-1989: Programming Language C, conegut com ANSI C. Es va publicar un altre estàndard successiu del llenguatge i es va anomenar ISO C (o C90). Les successives modificacions es van produir els anys 1995, 1999 i 2011, anomenant-se cadascuna C95, C99 i C11, respectivament. C11, que va trigar uns cinc anys a completar-se, va afegir una altra sèrie de funcions innovadores a C i les seves biblioteques, com ara:

  • funcions verificades amb límits;
  • estructures anònimes;
  • operacions atòmiques;
  • capacitats de multiprocés;
  • Suport Unicode; i
  • macros de tipus genèric.

Casos d’ús moderns de C

Avui en dia, el llenguatge de programació C impulsa les principals tecnologies que abasten des de sistemes operatius fins a sistemes integrats. C normalment comporta una empremta de memòria manejable, així com uns requisits de recursos de temps d’execució raonables. S’executa a prop del maquinari, és altament portàtil i presenta un enfocament determinista per utilitzar recursos que s’adapti a les aplicacions modernes.

Per il·lustrar-ho, aquí teniu una llista d’alguns dels casos d’ús més habituals de C:

Sistemes operatius

C segueix sent un llenguatge preferit quan es tracta de treballar amb nuclis de sistema i controladors de dispositiu. Els nuclis dels sistemes operatius Linux, macOS, iOS, Microsoft Windows i Android són exemples de llocs on la programació C ha trobat casa.

Bases de dades

Les bases de dades com MySQL, PostgreSQL i Microsoft SQL Server presenten de manera destacada bases de codi escrites en C. Per exemple, tot i que la base de dades Oracle es va escriure en llenguatge ensamblador des de la seva concepció el 1977, finalment es va reescriure en C per al llançament d’Oracle v3 el 1983. .

Compilar el disseny

Molts dels compiladors i intèrprets utilitzats en llenguatges més nous com Perl i Python funcionen amb enfocaments basats en C, perquè l’associació amb C sovint fa que el codi sigui més comprensible per a la màquina mitjana.

Sistemes encastats

Molts dels conductors de l’electrònica personal i domèstica diària, com ara rellotges despertadors, comandaments a distància, cafetera i microones, estan programats en C. Fins i tot les funcions d’automòbils com les pantalles del tauler de comandament, els panys a prova de nens, els sistemes d’entrada sense clau, els controls de coixins d’aire i els seients amb calefacció sovint són codificat en C, gràcies a la seva compatibilitat històrica amb el maquinari basat en màquina.

Pel·lícules en 3D

Moltes suites d’aplicacions utilitzades per desenvolupar pel·lícules en 3D es creen amb C i C++, a causa de la necessitat de processar grans quantitats de dades i realitzar un gran nombre de càlculs cada segon.

Leave a Comment

Your email address will not be published. Required fields are marked *