Está en la página 1de 10

¿Qué es el lenguaje de programación C?

C es un lenguaje de programación originalmente desarrollado


por Dennis M. Ritchie entre 1969 y 1972 en los Laboratorios Bell,
como evolución del anterior lenguaje B, a su vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementación
de Sistemas Operativos, concretamente Unix. C es apreciado por la
eficiencia del código que produce y es el lenguaje de programación
más popular para crear software de sistemas, aunque también se
utiliza para crear aplicaciones.
Se trata de un lenguaje de tipos de datos estáticos, débilmente
tipificado, de medio nivel pero con muchas características de bajo
nivel. Dispone de las estructuras típicas de los lenguajes de alto
nivel pero, a su vez, dispone de construcciones del lenguaje que
permiten un control a muy bajo nivel. Los compiladores suelen
ofrecer extensiones al lenguaje que posibilitan mezclar código en
ensamblador con código C o acceder directamente
a memoria o dispositivos periféricos.
La primera estandarización del lenguaje C fue en ANSI, con el
estándar X3.159-1989. El lenguaje que define este estándar fue
conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue
ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de
este estándar es muy amplia por lo que, si los programas creados lo
siguen, el código es portable entre plataformas y/o arquitecturas.

Filosofía
Uno de los objetivos de diseño del lenguaje C es que sólo sean
necesarias unas pocas instrucciones en lenguaje máquina para
traducir cada elemento del lenguaje, sin que haga falta un soporte
intenso en tiempo de ejecución. Es muy posible escribir C a bajo nivel
de abstracción; de hecho, C se usó como intermediario entre
diferentes lenguajes.
En parte a causa de ser de relativamente bajo nivel y de tener un
modesto conjunto de características, se pueden desarrollar
compiladores de C fácilmente. En consecuencia, el lenguaje C está
disponible en un amplio abanico de plataformas (más que cualquier
otro lenguaje). Además, a pesar de su naturaleza de bajo nivel, el
lenguaje se desarrolló para incentivar la programación
independiente de la máquina. Un programa escrito cumpliendo los
estándares e intentando que sea portátil puede compilarse en
muchos computadores.
C se desarrolló originalmente (conjuntamente con el sistema
operativo Unix, con el que ha estado asociado mucho tiempo) por
programadores para programadores. Sin embargo, ha alcanzado
una popularidad enorme, y se ha usado en contextos muy alejados
de la programación de software de sistema, para la que se diseñó
originalmente.

Características
Propiedades
 Un núcleo del lenguaje simple, con funcionalidades añadidas
importantes, como funciones matemáticas y de manejo de
archivos, proporcionadas por bibliotecas.
 Es un lenguaje muy flexible que permite programar con
múltiples estilos. Uno de los más empleados es el estructurado
"no llevado al extremo" (permitiendo ciertas licencias de
ruptura).
 Un sistema de tipos que impide operaciones sin sentido.
 Usa un lenguaje de preprocesado, el preprocesador de C, para
tareas como definir macros e incluir múltiples archivos de
código fuente.
 Acceso a memoria de bajo nivel mediante el uso de punteros.
 Interrupciones al procesador con uniones.
 Un conjunto reducido de palabras clave.
 Por defecto, el paso de parámetros a una función se realiza por
valor. El paso por referencia se consigue pasando
explícitamente a las funciones las direcciones de memoria de
dichos parámetros.
 Punteros a funciones y variables estáticas, que permiten una
forma rudimentaria de encapsulado y polimorfismo.
 Tipos de datos agregados ( struct) que permiten que datos
relacionados (como un empleado, que tiene un id, un nombre y
un salario) se combinen y se manipulen como un todo (en una
única variable "empleado").

Carencias
 Recolección de basura nativa, sin embargo se encuentran a tal
efecto bibliotecas como la "libgc" desarrollada por Sun
Microsystems, o el Recolector de basura de Boehm.
 Soporte para programación orientada a objetos, aunque la
implementación original de C++ fue un preprocesador que
traducía código fuente de C++ a C.
 Funciones anidadas, aunque GCC tiene esta característica como
extensión.
 Soporte nativo para programación multihilo.

Aunque la lista de las características útiles de las que carece C es


larga, este factor ha sido importante para su aceptación, porque
escribir rápidamente nuevos compiladores para nuevas plataformas,
mantiene lo que realmente hace el programa bajo el control directo
del programador, y permite implementar la solución más natural
para cada plataforma. Ésta es la causa de que a menudo C sea más
eficiente que otros lenguajes. Típicamente, sólo la programación
cuidadosa en lenguaje ensamblador produce un código más rápido,
pues da control total sobre la máquina, aunque los avances en los
compiladores de C y la complejidad creciente de los
microprocesadores modernos han reducido gradualmente esta
diferencia.
En algunos casos, una característica inexistente puede aproximarse.
Por ejemplo, la implementación original de C++ consistía en un
preprocesador que traducía código fuente C++ a C. La mayoría de las
funciones orientadas a objetos incluyen un puntero especial, que
normalmente recibe el nombre "this", que se refiere al objeto al que
pertenece la función. Mediante el paso de este puntero como un
argumento de función, esta funcionalidad puede desempeñarse en
C.
Diferencias de C y C++

A ver, siempre hay gran confusión con esto... Deberías empezar por C según la mayoría de la gente, por
C++ según los expertos de POO, y por C# según los engañados.

C es un lenguaje libre estandarizado por ISO MUY PEQUEÑO que admite programación estructurada (la
de toda la vida), nada más. Útil en programación de microchips, sistemas operativos, drivers y
programación web... Poco más.

C++ es un lenguaje libre estandarizado por ISO MUY GRANDE, que admite: Programación estructurada
(la de toda la vida), la totalidad de la POO (objetos, herencia simple, herencia múltiple, polimorfismo,
upcasting, downcasting, RTTI, interfaces, clases abstractas, clases amigas, operadores, sobrecarga... y mil
cosas más avanzadas), programación genérica (plantillas, STL, conceptos de contenedores, estructuras
de datos genéricas, <b>metaprogramación</b>... es una programación que no dispone ningún otro
lenguaje mayoritario por el momento)... y otras características más avanzadas como los punteros
inteligentes, programación lambda, programación "física"... También se usa como programación por
eventos (MFC, Qt, Gtk y otras GUIs). Se usa para cualquier cosa, desde sistemas operativos hasta los
juegos 3D de última generación pasando por servidores, pasando por las típicas aplicaciones de
escritorio o un Office o OpenOffice, un reproductor WinAMP y Windows Media Player, un explorador
web (Internet Explorer, Mozilla, Firefox...), un cliente eMule, un cliente Torrent.

C# es un invento de Microsoft (lenguaje propietario) que mezcla las características básicas de C++ (no las
avanzadas) simplificándolas al estilo Java y ofreciendo un framework. El problema es que es .Net, y deja
de ser código nativo/portable. Eso sí, el framework provee bastante facilidad de programación de tareas
comunes, al igual que Java. Por ello se genera el debate ¿Java o C#? Su funcionalidad viene a ser
parecida. .Net es más nativo y Java más virtual.

Aunque C++ es un superconjunto de C, existen algunas diferencias entre los dos. En primer lugar, en C
cuando una función no toma parámetros, su prototipo tiene la palabra void. Sin embargo en C++ void no
es necesario(opcional).

Prototipo en C: char f1(void);


Prototipo en C++: char f1();

Otra diferencia entre C y C++ es que en un programa de C++ todas las funciones deben estar en forma
de prototipo, en C los prototipos se recomiendan, pero son opcionales. También si una función de C++
es declarada para devolver un valor obligatoriamente la sentencia return debe devolver un valor, en C
no es necesario que se devuelva.

Otra diferencia es el lugar donde se declaran las variables locales. En C, deben ser declaradas solo al
principio del bloque, mientras que en C++ las variables se pueden declarar en cualquier punto. Aunque
es conveniente realizarlo siempre al comienzo de la función.

Site: http://www.mailxmail.com/curso-lenguaje-c-guia-programadores/diferencias-c-c

C fue creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior
lenguaje B, a su vez basado en BCPL.

C++, por su parte, fue creado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su
creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la
manipulación de objetos.

Así que C es el lenguaje original, mientras que C++ es una ampliación de C, por eso el ++.

A mi cuando me enseñaron a programar me dijeron que iba a aprender a programar en C++, pero en
verdad me enseñaron únicamente C, así que muchos profesores en realidad no saben lo que es
programar en C++. Veamos un hola mundo en los dos programas:

En C
Por qué estudiar C++ en 2019
Si se busca programar en alto nivel , con la opción de poder bajar incluso a
ensamblador, C++ sigue siendo una gran opción, ya que estamos ante un lenguaje de
programación muy potente y que se ha mantenido actualizado.

La programación de videojuegos sigue siendo una profesión en auge y en ella el


conocimiento de Unity y C++ es muy valorado.

Para saber qué es C++ y superar la curva de aprendizaje de este lenguaje de


programación, lo ideal es realizar un Curso de C++ . Mientras puedes aprender sobre
uno de los lenguajes más utilizados con este completo artículo en el que te contamos qué
es C++, su origen, ventajas, aplicaciones, etc.

Origen de C++
Fue diseñado a mediados de los años 80 por el danés Bjarne Stroustrup . Si intención
fue la de extender el lenguaje de programación C ( con mucho éxito en ese momento )
para que tuviese los mecanismos necesarios para manipular objetos. Por lo tanto C++
contiene los paradigmas de la programación estructurada y orientada a objetos, por lo que
se le conoce como un lenguaje de programación multiparadigma.

Qué significa C++


A C++ primero se le conoció como “C con clases”. Luego se cambió a C++ que significa
“incremento de C”, dando a entender que se trata de una extensión del lenguaje de
programación C.

Ventajas y desventajas de C++


Las principales ventajas de programar en C++ son:

  Alto rendimiento : Es una de sus principales características, el alto rendimiento que


ofrece. Esto es debido a que puede hacer llamadas directas al sistema operativo, es un
lenguaje compilado para cada plataforma, posee gran variedad de parámetros de
optimización y se integra de forma directa con el lenguaje ensamblador.
  Lenguaje actualizado : A pesar de que ya tiene muchos años, el lenguaje se ha ido
actualizando, permitiendo crear, relacionar y operar con datos complejos y ha
implementado múltiples patrones de diseño.
  Multiplataforma
  Extendido : C y C++ están muy extendidos. Casi cualquier programa o sistema están
escritos o tienen alguna parte escrita en estos lenguajes ( desde un navegador web hasta
el propio sistema operativo ).

Las principales desventajas de C++ es que se trata de un lenguaje muy amplio ( con


muchos años y muchas líneas de código ), tiene que tener una compilación por
plataforma y su depuración se complica debido a los errores que surgen. Además el
manejo de librerías es más complicado que otros lenguajes como Java o .Net y su curva
de aprendizaje muy alta. Puede consultarse más información en esta Página de
referencia de C++ .

Características del lenguaje C++


Algunas de las características más importantes que posee el lenguaje C++ son:

Compatibilidad con bibliotecas : A través de bibliotecas hay muchas funciones que


están disponible y que ayudan a escribir código rápidamente.

Orientado a Objetos : El foco de la programación está en los objetos y la manipulación y


configuración de sus distintos parámetros o propiedades.

Rapidez : La compilación y ejecución de un programa en C++ es mucho más rápida que


en la mayoría de lenguajes de programación.

Compilación : En C++ es necesario compilar el código de bajo nivel antes de ejecutarse,


algo que no ocurre en otros lenguajes.

Punteros : Los punteros del lenguaje C, también están disponibles en C++.

Didáctico : Aprendiendo programación en C++ luego es mucho más fácil aprender


lenguajes como Java, C#, PHP, Javascript, etc.

Aplicaciones y usos de C++


Las aplicaciones del lenguaje C++ son muy extensas. Podemos nombrar que
navegadores WEB, Sistemas operativos, Bases de datos, bibliotecas, aplicaciones
gráficas, nubes, videojuegos, compiladores, etc están escritos o tienen bastante de su
estructura, programada C ++. Vamos a hablar de algunas de estas aplicaciones:

Bases de Datos : MySQL, una de las bases de datos más utilizadas está escrita en C++.

Navegadores WEB : Utilizan C++ porque necesitan rapidez a la hora de mostrar los
resultados en pantalla.
Sistemas operativos : La columna principal tanto de Windows, como Linux o Mac OS,
están escritas en C++. Su potencia y rapidez lo hace un lenguaje de programación ideal
para programar un sistema operativo.

Compiladores : los compiladores de muchos lenguajes de programación están escritos


en C++.

Videojuegos : C++ es utilizado aún en el mundo de los videojuegos, bien para programar
motores gráficos o para alguna parte concreta del videojuego.

También tiene otras aplicaciones como en máquinas médicas, relojes inteligentes, etc. por
su capacidad de estar cerca del lenguaje máquina que otros lenguajes de alto nivel.

Por todos estos usos y aplicaciones podemos concluir que la importancia del lenguaje C+
+ es muy grande y está presente en muchos sitios.

Versiones de C++
La versión más actual de C++ es la 17 y es del año 2017 ( del año se obtiene el
número de versión ) y sustituye a la 14 del 2014. La próxima versión está prevista que
aparezca en el año 2020 y se llamará, siguiendo la misma tradición, C++ 20.

C++ es un lenguaje robusto y bien diseñado que ha sabido actualizarse con el paso de
los años. Su potencia y capacidad de programación en ensamblador le permite seguir
siendo una de las mejores opciones para programar hoy en día . Aprender a
programar en C++ sigue siendo un gran valor que abrirá las puertas del mercado a
muchos programadores en este 2019.

Ante la decisión de aprender un nuevo lenguaje de programación, C++ debe de estar en


las prioridades . Las ventajas que tiene son muy grandes como ya hemos visto y merece
la pena el esfuerzo necesario para aprenderlo. Además, su comprensión facilitará el
aprendizaje futuro de otros lenguajes de programación , como Java. A pesar de ser
un lenguaje de alto nivel, el programador podrá tener acceso a programación en bajo
nivel, algo que no se puede hacer con la mayoría de lenguajes de programación.

También podría gustarte