C (linguaxe de programación)
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.
C | |
---|---|
Paradigma | imperativa, estruturada |
Data | 1972[1] |
Deseñador | Dennis Ritchie |
Desenvolvedor | Dennis Ritchie e Bell Labs (creadores); ANSI X3J11 (ANSI C); ISO/IEC JTC1/SC22/WG14 (ISO C) |
Última versión | C11 |
Tipo de dato | estática, deble, manifesta, nominal |
Dialectos | Cyclone, Unified Parallel C, Split-C, Cilk, C* |
Influído por | B (BCPL, CPL), ALGOL 68, Assembly, PL/I, FORTRAN |
Influíu | Multitude: 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 operativo | Multiplataforma |
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- 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
editarDesde a súa aparición da linguaxe xurdiron varias ramas de evolución que xeraron varias novas linguaxes:
- Objetive-C é un primeiro intento de proporcionar soporte á programación orientada a obxectos pero de escasa difusión.
- C++ deseñado por Bjarne Stroustrup proporciona orientación a obxectos e é a variante máis difundida e aceptada. Esta versión combina a flexibilidade e o acceso de baixo nivel de C coas características da programación orientada a obxectos como abstracción, encapsulación e ocultación.
- C# (C Sharp en inglés) é unha linguaxe derivada de C/C++ e Java desenvolvido por Microsoft.
Proceso de compilación
editarA compilación dun programa C realizase en varias fases que normalmente son automatizadas e ocultadas polos contornos de desenvolvemento:
- 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. - Compilación que xera o código obxecto a partir do código xa preprocesado.
- 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
editarSegue 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"); }
Notas
editar- ↑ 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
editarO Galilibros ten un manual sobre: C |
Outros artigos
editar- Linguaxe de programación.
- Linguaxe de programación de alto nivel.
- B · C++ · D · Python · Ruby · Perl.
Ligazóns externas
editar- C evolution: En inglés.