Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Curso C++

[Home]  [Inicio]  [Índice]


4.13 Tecnicismos

§1 Introducción

Generalmente el conocimiento de un lenguaje de programación comienza con el estudio de la finalidad (descripción) y utilización (sintaxis) de los elementos que lo componen. Sin embargo, en el caso de C++, en el que la Librería Estándar está indisolublemente unida al lenguaje, este estudio debe incluir una segunda fase dedicada a la Librería; por lo demás muy importante, ya que sin su existencia, el lenguaje en sí carecería de utilidad práctica.

Puesto que la Librería Estándar es una extensión del C++, damos por supuesto que su estudio debe efectuarse después de conocer el lenguaje propiamente dicho, y podría pensarse que con este conocimiento ya estamos perfectamente capacitados para abordar nuestras propias aplicaciones. Sin embargo C++ es complejo y extenso; para manejarlo con un mínimo de soltura se requiere mucha práctica, así como el conocimiento de ciertas técnicas, modos de hacer y precauciones que facilitan la andadura y evitan caer en los múltiples peligros que acechan en el arcén.

Cada lenguaje de programación tiene características propias; su propio estilo para el abordaje y solución de problemas. Estas características, junto con el tiempo y la experiencia, han consagrado una serie de métodos, algoritmos, y formas específicas de solución de ciertos problemas, cuyo conocimiento condensa buena parte de la sabiduría práctica de los expertos, y constituye lo que algún autor ha definido como la ética particular de cada lenguaje de programación. Por ser el lenguaje C++ tan extenso y general, la colección de estos tecnicismos es también especialmente extensa, y su conocimiento especialmente importante para el programador C++ que desee un mínimo de soltura.

Dedicaremos esta sección a la descripción de algunas de estas técnicas cuya utilidad no es solo práctica como apuntábamos antes [1], sino también teórica y desde luego didáctica. Cualquier estudioso del C++ que desee un conocimiento más que superficial del lenguaje, en especial de la Librería Estándar, descubrirá que muchos de los sofisticados algoritmos que se utilizan en ella son en realidad una aplicación refinada de ciertas técnicas ya conocidas y estudiadas previamente. Sin una introducción y explicación adecuadas es virtualmente imposible que una persona normal pueda descubrir por sí mismo "porqué diablos" son así muchas de las construcciones de la citada librería.

Nota: en la literatura inglesa, estas técnicas son conocidas como "Idioms". Desgraciadamente no existe en español una sola palabra exactamente equivalente. Significa tecnicismo, técnica o modo particular de hacer las cosas en determinado ambiente o profesión. En el lenguaje natural los idioms corresponderían a las frases hechas; formas de expresar determinadas ideas que son propias de cada idioma [2].


Vaya por delante, que estas materias no suelen encontrarse en los textos generales o introductorios sobre el lenguaje. Son más propias de textos sobre programación o técnicas avanzadas de C++. Sin embargo, se incluyen aquí porque las considero de alto interés didáctico. Muchas de ellas se han tomado del magnífico libro de Coplien ya señalado [2], donde se presentaron algunas por primera vez, intentando simplificar la presentación ya de por sí bastante difícil en algunos casos. He incluido también algunas consideraciones y comentarios que considero relevantes, o que resultaron en su momento motivo de duda o cavilación para mí.  Estoy seguro que aclararán más de una idea al que tenga paciencia para leerlas.

  Inicio.


[1] "Since large programs grow from small ones, it is crucial that we develop an arsenal of standard program structures of whose correctness we have become sure -- we call them idioms -- and learn to combine them into larger structures using organizational techniques of proven value. These techniques are treated at length in this book, and understanding them is essential to participation in the Promethean enterprise called programming. .... A programmer should acquire good algorithms and idioms. Even though some programs resist precise specifications, it is the responsibility of the programmer to estimate, and always to attempt to improve, their performance.".  Harol Abelson y otros. "Structure and Interpretation of Computer Programs". 2ª Edición 1999. The MIT Press Cambridge, Massachusetts.

[2]  "These idioms are in common enough use to be considered orthodox practices of everyday C++ programming". [Coplien-94] §1.2.