C (linguaxe de programación): Diferenzas entre revisións

Na Galipedia, a Wikipedia en galego.
Contido eliminado Contido engadido
SieBot (conversa | contribucións)
Xqbot (conversa | contribucións)
m bot Engadido: mg:Fiteny C; cambios estética
Liña 5: Liña 5:
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.
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 inconvintes==
== Vantaxes e inconvintes ==
*Vantaxes:
* Vantaxes:
**É unha linguaxe moi eficiente posto que é posible utilizar as suas características de baixo nivel para realizar implementacions óptimas.
** É unha linguaxe moi eficiente posto que é posible utilizar as suas características de baixo nivel para realizar implementacions óptimas.
**A pesar do seu baixo nivel é [[portable]] sempre que no sistema final exista o [[compilador]] axeitado (con algunhas restriccions).
** A pesar do seu baixo nivel é [[portable]] sempre que no sistema final exista o [[compilador]] axeitado (con algunhas restriccions).
**É 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).
** É 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.
** Proporciona facilidades para realizar programas modulares e/uo utilizar código ou bibliotecas existentes.


*Inconvintes:
* Inconvintes:
**A sua flexibilidade e/ou optimización excesiva pode xerar programas pouco lexibles e mantibles.
** A sua flexibilidade e/ou optimización excesiva pode xerar programas pouco lexibles e mantibles.
**Algunhas das suas posibilidades mal empregadas poden inducir a erros ou bugs difíciles de detectar e corrixir.
** Algunhas das suas 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 expresions, 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).
** Trátase dunha linguaxe complexa e complicada de aprender. O seu núcleo nativo é moi reducido (unicamente expresions, 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==
== Variantes ==
Desde a sua aparición da linguaxe surxiron varias ramas de evolución que xeraron varias novas linguaxes:
Desde a sua aparición da linguaxe surxiron varias ramas de evolución que xeraron varias novas linguaxes:
*'''[[Objetive-C]]''' é un primer intento de proporcionar soporte á [[Programación orientada a obxectos|programación orientada a obxectos]] pero de escasa difusión.
* '''[[Objetive-C]]''' é un primer intento de proporcionar soporte á [[programación orientada a obxectos]] pero de escasa difusión.
*'''[[C máis máis|C++]]''' diseñado por [[Bjarne Stroustrup]] proporciona [[Programación orientada a obxectos|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 máis máis|C++]]''' diseñado por [[Bjarne Stroustrup]] proporciona [[Programación orientada a obxectos|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_Sharp|C#]]''' (pronunciado ''C Sharp'' en inglés e ''C almohadilla'' en castelan, ainda que sóese usar a pronunciación inglesa) é unha linguaxe derivada de C/C++ e [[Java (linguaxe de programación)|Java]] desenvolvido por [[Microsoft]].
* '''[[C Sharp|C#]]''' (pronunciado ''C Sharp'' en inglés e ''C almohadilla'' en castelan, ainda que sóese usar a pronunciación inglesa) é unha linguaxe derivada de C/C++ e [[Java (linguaxe de programación)|Java]] desenvolvido por [[Microsoft]].


==Proceso de compilación==
== Proceso de compilación ==
A [[compilador|compilación]] dun programa C realizase en varias fases que normalmente son automatizadas e ocultadas polos entornos de desenvolvemento:
A [[compilador|compilación]] dun programa C realizase en varias fases que normalmente son automatizadas e ocultadas polos entornos de desenvolvemento:
#'''[[Preprocesado]]''' consistente en modificar o [[código fonte]] en C segundo unha serie de instruccions (denominadas [[directivas de preprocesado]]) simplificando de esta forma o traballo do [[compilador]]. Por exemplo, unha das accións máis importantes é a modificación das inclusions (<code>#include</code>) polas declaracions reais existentes no ficheiro indicado.
# '''[[Preprocesado]]''' consistente en modificar o [[código fonte]] en C segundo unha serie de instruccions (denominadas [[directivas de preprocesado]]) simplificando de esta forma o traballo do [[compilador]]. Por exemplo, unha das accións máis importantes é a modificación das inclusions (<code>#include</code>) polas declaracions reais existentes no ficheiro indicado.
#'''[[Compilación]]''' que xenera o [[código obxecto]] a partir do código xa preprocesado.
# '''[[Compilación]]''' que xenera o [[código obxecto]] a partir do código xa preprocesado.
#'''[[Enlazado]]''' que une os [[código obxecto|códigos obxecto]] dos distintos módulos e bibliotecas externas (como as [[bibliotecas do sistema]]) para xerar o programa executable final.
# '''[[Enlazado]]''' que une os [[código obxecto|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==
== Exemplo de Código C ==
Segue o clásico exemplo "Ola mundo!" en C:
Segue o clásico exemplo "Ola mundo!" en C:


Liña 41: Liña 41:
}
}


==Véxase tamén==
== Véxase tamén ==
{{Wikibooks|C}}
{{Wikibooks|C}}
===Outros artigos===
=== Outros artigos ===
*[[Linguaxe de programación]]
* [[Linguaxe de programación]]
*[[Linguaxe de alto nivel|Linguaxe de programación de alto nivel]]
* [[Linguaxe de alto nivel|Linguaxe de programación de alto nivel]]
*[[Linguaxe de programación B|B]] · [[C++]] · [[Linguaxe de programación D|D]] · [[Python]] · [[Ruby]] · [[Perl]]
* [[Linguaxe de programación B|B]] · [[C++]] · [[Linguaxe de programación D|D]] · [[Python]] · [[Ruby]] · [[Perl]]
===Ligazóns externas===
=== Ligazóns externas ===
* [http://www.faqs.org/docs/artu/c_evolution.html C evolution]: En [[Lingua inglesa|inglés]].
* [http://www.faqs.org/docs/artu/c_evolution.html C evolution]: En [[Lingua inglesa|inglés]].



[[Categoría:Linguaxes de programación|C]]
[[Categoría:Linguaxes de programación|C]]
Liña 102: Liña 101:
[[lt:C (kalba)]]
[[lt:C (kalba)]]
[[lv:C (programmēšanas valoda)]]
[[lv:C (programmēšanas valoda)]]
[[mg:Fiteny C]]
[[mk:C (програмски јазик)]]
[[mk:C (програмски јазик)]]
[[ml:സി (പ്രോഗ്രാമിങ് ഭാഷ)]]
[[ml:സി (പ്രോഗ്രാമിങ് ഭാഷ)]]

Revisión como estaba o 4 de xaneiro de 2010 ás 10:58

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, á sua 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 ensamblador 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 inconvintes

  • Vantaxes:
    • É unha linguaxe moi eficiente posto que é posible utilizar as suas características de baixo nivel para realizar implementacions óptimas.
    • A pesar do seu baixo nivel é portable sempre que no sistema final exista o compilador axeitado (con algunhas restriccions).
    • É 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.
  • Inconvintes:
    • A sua flexibilidade e/ou optimización excesiva pode xerar programas pouco lexibles e mantibles.
    • Algunhas das suas 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 expresions, 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

Desde a sua aparición da linguaxe surxiron varias ramas de evolución que xeraron varias novas linguaxes:

  • Objetive-C é un primer intento de proporcionar soporte á programación orientada a obxectos pero de escasa difusión.
  • C++ diseñ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# (pronunciado C Sharp en inglés e C almohadilla en castelan, ainda que sóese usar a pronunciación inglesa) é unha linguaxe derivada de C/C++ e Java desenvolvido por Microsoft.

Proceso de compilación

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

  1. Preprocesado consistente en modificar o código fonte en C segundo unha serie de instruccions (denominadas directivas de preprocesado) simplificando de esta forma o traballo do compilador. Por exemplo, unha das accións máis importantes é a modificación das inclusions (#include) polas declaracions reais existentes no ficheiro indicado.
  2. Compilación que xenera 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

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");
}

Véxase tamén

Outros artigos

Ligazóns externas