Magnitudes físicas: El problema de la conversión de unidades

Introducción


El desgraciado error de conversión de unidades que condujo en 1999 a la desintegración de la sonda Mars Climate Orbiter de la NASA es un ejemplo bien conocido de la necesidad de garantizar que nuestro software sea fuertemente tipado, así como del peligro de emplear un mismo tipo primitivo básico para representar magnitudes diferentes y/o medidas de una única magnitud expresadas en unidades distintas.

Integrando VSCode, Mingw-w64 y CMake (Parte IV)

Artículos de la serie:

Depuración en VSCode mediante GDB


En este post analizaremos brevemente el depurador estándar ofrecido por el compilador GCC (el conocido GNU Debugger, abreviado simplemente como GDB) en combinación con el editor VSCode. Asumiremos que hemos realizado ya la instalación del compilador Mingw-w64, así como del editor VSCode y sus extensiones para C++, tal y como explicamos en el primer post de esta serie.

Docencia en C++: Breve introducción al lenguaje

Motivación


Durante 2018 se constituyó, dentro del proceso de estandarización del lenguaje ISO C++, el subgrupo de trabajo SG20 (C++ Education Study Group) focalizado en proporcionar directrices curriculares y de enseñanza para C++.

El documento de trabajo P1389R0 publicado por dicho grupo (disponible en http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1389r0.html) anima a integrar herramientas básicas de programación en los cursos introductorios de C++, tales como package managers, build systems y debuggers, entre otras. Nuestra serie de posts anterior, centrada en la integración de Visual Studio Code, Mingw-w64 y CMake en el entorno MS Windows, responde precisamente a esta directriz.

Asimismo, el documento P1389R0 sugiere facilitar a nuestros estudiantes una breve introducción acerca del lenguaje en la que se aprecien sus fortalezas y casos de uso moderno, pero que huya de comparaciones innecesarias con el lenguaje C que puedan llevar a considerar C++ un mero 'C con clases', un error muy extendido incluso en nuestros días. En efecto, aun cuando muchas fuentes se refieren a C/C++ como una unidad temática, ambos lenguajes son de hecho radicalmente diferentes, hasta el punto de que introducir C como primer paso en un curso en C++ puede resultar dramáticamente contraproducente (un punto éste analizado de forma muy convincente en CppCon 2015: Kate Gregory 'Stop Teaching C'https://youtu.be/YnWhqhNdYyk). Este post pretende proporcionar una presentación al lenguaje en la línea sugerida por P1389R0.

Integrando VSCode, Mingw-w64 y CMake (Parte III)

Artículos de la serie:

Instalación de bibliotecas no-estándar


En el post anterior se analizó la incorporación de extensiones en nuestro editor VSCode para hacer posible la construcción de proyectos mediante CMake.

En este nuevo artículo explicaremos cómo instalar bibliotecas no-estándar en nuestro sistema y su incorporación en proyectos de CMake. Son varias las bibliotecas de uso extendido en la comunidad de C++ cuya inclusión temprana resulta imprescindible en un curso introductorio sobre este lenguaje. Entre ellas, cabría señalar las siguientes:

Integrando VSCode, Mingw-w64 y CMake (Parte II)

Artículos de la serie:

Construyendo un proyecto 'Hello, world!' con CMake


Este post es una continuación del artículo anterior de la serie, en el que analizamos la integración del editor VSCode, el compilador GCC y el generador de build systems CMake para la gestión de proyectos de C++ en MS Windows. CMake empleará ficheros de configuración CMakeLists.txt para producir archivos de construcción específicos que puedan ser utilizados por la herramienta de construcción nativa de nuestra plataforma (Make o Ninja, por ejemplo).

Integrando VSCode, Mingw-w64 y CMake (Parte I)

Última actualización: 3 de septiembre de 2023

Artículos de la serie:

Introducción


Esta serie de posts se centrará en la instalación y configuración de un entorno de trabajo para proyectos en C++ bajo MS Windows (7 o posterior, 64-bit) basado en:
  • Visual Studio Code (https://code.visualstudio.com/), un editor gratuito y de código abierto –si bien la descarga oficial se realiza bajo una licencia de software propietario– desarrollado desde 2015 por Microsoft para los sistemas Linux, MS Windows y macOS. Proporciona, entre otras funcionalidades, un alto grado de configuración por parte del usuario, resaltado de sintaxis, soporte para debugging, autocompleción e información de código (IntelliSense) y control integrado de Git. Fue declarado el IDE más popular entre desarrolladores en el Stack Overflow Developer Survey de 2022.
  • Mingw-w64 (https://mingw-w64.org/), un entorno de desarrollo de software para MS Windows que incluye un puerto de los compiladores GCC (https://gcc.gnu.org/). Contiene un subconjunto de la API de Windows, lo que permite el desarrollo de aplicaciones nativas tanto de 32 como de 64 bits. Realizaremos su instalación a través de la plataforma MSYS2.
  • CMake (https://cmake.org/), una herramienta de construcción, prueba, distribución e instalación de proyectos ampliamente extendida en el ámbito de la programación profesional en C y C++. Nos permitirá controlar el proceso de construcción de nuestros proyectos (build process) mediante ficheros CMakeLists.txt independientes de nuestro build system nativo (como GNU Make o Ninja).