Skip to content

Latest commit

 

History

History

01_introduccion_cpp

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

¿Por qué C++?

¡C++ es aún un lenguaje muy popular!

2023 developer survey

Stack Overflow Developer Survey 2023.

Lo utilizamos en cursos:

  • Lenguaje de programación.
  • Programación avanzada.
  • Arquitectura de computadoras.
  • Computación paralela.
  • Robótica médica.

Y también en la vida real!

Usuarios de C++

Java, Spirit, Windows 11, Dota, Google Chrome.

Además, es bastante rápido.

Tiempos de ejecución de programas en distintos lenguajes

Fourment M, Gillings MR. A comparison of common programming languages used in bioinformatics. BMC Bioinformatics. 2008 Feb 5;9:82.

¿Qué es C++?

Assembly

Primero meditemos sobre assembly:

  • Instrucciones increíblemente simples (sumar, restar, mover bits).
  • Un buen código en assembly es extremadamente veloz.
  • Control total sobre nuestros programas.
section .text
global _start              ; debe ser declarado para el linker (ld)
_start:                    ; indica el punto de entrada al linker
 mov edx,len               ; longitud del mensaje
 mov ecx,msg               ; mensaje a escribir
 mov ebx,1                 ; descriptor de archivo (stdout)
 mov eax,4                 ; número de system call (sys_write)
 int 0x80                  ; llamar al kernel
 mov eax,1                 ; número de system call (sys_exit)
 int 0x80                  ; llamar al kernel
section .data
msg db 'Hola, mundo!',0xa  ; nuestra querida cadena
len equ $ - msg            ; longitud de nuestra querida cadena

¿Por qué no usamos siempre assembly?

  • Requerimos mucho código para implementar tareas simples.
  • Difícil de entender el código de otras personas.
  • Poco portátil pues está amarrado a la arquitectura del computador.

Desarrollar con assembly era muy difícil pero las computadoras solo entendían assembly.

Nuestros ancestros se hicieron la siguiente lluvia de ideas:

  • El código fuente puede ser escrito en un lenguaje más intuitivo.
  • Un programa adicional puede convertir este código fuente en assembly.

¡A ese programa adicional le llamamos compilador!

Un compilador es un programa que toma código y construye un programa que podemos correr. Si la compilación es exitosa, el programa puede ser ejecutado.

C

Ken Thompson y Dennis Ritchie crearon C en 1972.

KT & DR

KT y DR, creadores del lenguaje C.

Ken Thompson también es co-diseñador de Go desde el 2007, un lenguaje simple, veloz y divertido para desarrollo back-end y se ha convertido en una tendencia durante los últimos años.

C hizo fácil escribir código que sea

  • Rápido.
  • Simple.
  • Multiplataforma.

Su simplicidad lo hizo muy popular, la cual también era su debilidad:

  • No existían objetos ni clases.
  • Difícil de escribir código que funcione genéricamente.
  • Tedioso al escribir programas largos.

C++

En 1983, Bjarne Stroustrup creó C++. Nada mejor que escuchar al creador explicar el porqué de su creación en la siguiente entrevista:

Bjarne Stroustrup

Bjarne Stroustrup: Why I Created C++.

Él quería un lenguaje que cumpla con lo siguiente:

  • Rápido.
  • Simple.
  • Multiplatafotma.
  • Que tenga características de alto nivel.

Evolución de C++ Evolución de C++.

Su filosofía era la siguiente:

  • Solo añadir características si resuelven un problema real.
  • Los programadores deben ser libres de elegir su propio estilo.
  • Permitir al programador control absoluto si lo desea.
  • No sacrificar el rendimiento excepto como último recurso.
  • Imponer seguridad en tiempo de compilación siempre que sea posible.

Sintaxis versus semántica

Definamos los siguientes términos:

  • Sintaxis: las reglas para construir sentencias gramaticales en un lenguaje.
  • Semántica: Significado.

Estas definiciones son independientes de referirse a un lenguaje humano o un lenguaje de programación.

Consideremos el siguiente ejemplo:

Amortajadas las pupilas, traza su aullido pastoral un perro.

Hay muchas cosas ocurriendo en esta oración, sintácticamente hablando. La puntuación al final de la oración es parte de la sintaxis, al igual que la coma. La oración comienza con un complemento adverbial ("Amortajadas las pupilas"). El verbo de la oración es "traza", el cual indica la acción realizada por el sujeto ("un perro"). El complemento directo del verbo es "su aullido pastoral". Es una oración gramaticalmente correcta.

La semántica de la oración está relacionada con una metáfora explosiva y religiosa. Las yuxtaposiciones inflaman las diferencias entre impulsos religiosos y naturalistas. Por ejemplo, "aullido pastoral" combina lo simple e idílico de "pastoral" con lo violento y desesperado de "aullido". Un poema como este no se construye sobre una comprensión preconcebida de la realidad. Al contrario, está desagarrado por gestos brutales de hiperrealidad.

¿Por qué esto es relevante?

Conforme descubramos todo lo que podemos hacer con C++, iremos aprendiendo la sintaxis que tenemos que seguir (i.e. cómo escribir las líneas de código que el compilador digerirá) y la semántica asociada (i.e. qué hace o significa dicha sintaxis).

Pero ... ¿qué es C++?