Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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).
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.
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.
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.
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.