Saltar ao contido

C (linguaxe de programación)

Na Galipedia, a Wikipedia en galego.
C
Paradigmaimperativa, estruturada
Data1972[1]
DeseñadorDennis Ritchie
DesenvolvedorDennis Ritchie e Bell Labs (creadores); ANSI X3J11 (ANSI C); ISO/IEC JTC1/SC22/WG14 (ISO C)
Última versiónC11
Tipo de datoestática, deble, manifesta, nominal
DialectosCyclone, Unified Parallel C, Split-C, Cilk, C*
Influído porB (BCPL, CPL), ALGOL 68, Assembly, PL/I, FORTRAN
InfluíuMultitude: AMPL, AWK, csh, C++, C--, C#, Objective-C, BitC, D, Go, Java, JavaScript, Julia, Limbo, LPC, Perl, PHP, Pike, Processing, Python, Rust, Seed7, Vala, Verilog (HDL)
Sistema operativoMultiplataforma

C é unha linguaxe de programación creada no 1969 por Ken Thompson e Dennis M. Ritchie nos Laboratorios Bell baseándose nas linguaxes BCPL e B. Ao igual que os seus dous predecesores, é unha linguaxe orientada á implementación de sistemas operativos (os sistemas operativos Linux e UNIX están escritos maiormente en C), pero converteuse nunha linguaxe de propósito xeral dos máis usados.

Trátase dunha linguaxe non fortemente tipada de medio nivel pero con moitas características de baixo nivel. Dispón das estruturas típicas das linguaxes de alto nivel pero, á súa vez, dispón de construcións da linguaxe que permiten un control a moi baixo nivel. Un exemplo é a posibilidade de mesturar código en linguaxe ensambladora con código C ou acceder directamente a memoria o dispositivos periféricos. Destaca a súa grande riqueza de operadores e expresións.

Existe un estándar ISO do 1986 denominado ANSI C. En teoría, unha linguaxe 100% ANSI C sería portable entre plataformas e/ou arquitecturas pero na práctica isto non é sempre certo.

Vantaxes e inconvenientes

[editar | editar a fonte]
  • Vantaxes:
    • É unha linguaxe moi eficiente posto que é posible utilizar as súas características de baixo nivel para realizar implementacións óptimas.
    • A pesar do seu baixo nivel é portable sempre que no sistema final exista o compilador axeitado (con algunhas restricións).
    • É unha linguaxe moi flexible que permite programar con múltiples estilos. Un dos máis empregados é o estruturado non levado ao extremo (permitindo certas licenzas rupturistas).
    • Proporciona facilidades para realizar programas modulares e/uo utilizar código ou bibliotecas existentes.
  • Inconvenientes:
    • A súa flexibilidade e/ou optimización excesiva pode xerar programas pouco lexibles e mantibles.
    • Algunhas das súas posibilidades mal empregadas poden inducir a erros ou bugs difíciles de detectar e corrixir.
    • Trátase dunha linguaxe complexa e complicada de aprender. O seu núcleo nativo é moi reducido (unicamente expresións, sentenzas condicionais e bucles) mentres que a maior parte da funcionalidade proporcionase con bibliotecas externas (a maior parte bibliotecas estándar e as bibliotecas da API do sistema).

Variantes

[editar | editar a fonte]

Desde a súa aparición da linguaxe xurdiron varias ramas de evolución que xeraron varias novas linguaxes:

Proceso de compilación

[editar | editar a fonte]

A compilación dun programa C realizase en varias fases que normalmente son automatizadas e ocultadas polos contornos de desenvolvemento:

  1. Preprocesado consistente en modificar o código fonte en C segundo unha serie de instrucións (denominadas directivas de preprocesado) simplificando desta forma o traballo do compilador. Por exemplo, unha das accións máis importantes é a modificación das inclusións (#include) polas declaracións reais existentes no ficheiro indicado.
  2. Compilación que xera o código obxecto a partir do código xa preprocesado.
  3. Enlazado que une os códigos obxecto dos distintos módulos e bibliotecas externas (como as bibliotecas do sistema) para xerar o programa executable final.

Exemplo de Código C

[editar | editar a fonte]

Segue o clásico exemplo "Ola mundo!" en C:

/* O noso primeiro programa en C */

#include <stdio.h> //Incluímos a biblioteca standard input output

main()
{
      printf("Ola mundo!\n");
}
  1. Ritchie, Dennis M. (March 1993). "The Development of the C Language". ACM SIGPLAN Notices 28 (3): 201–208. doi:10.1145/155360.155580. Arquivado dende o orixinal o 11 de abril de 2019. Consultado o 03 de outubro de 2016. 

Véxase tamén

[editar | editar a fonte]

Outros artigos

[editar | editar a fonte]

Ligazóns externas

[editar | editar a fonte]