Sun. Oct 2nd, 2022

El crecimiento y la popularidad de C continúa. El índice TIOBE más reciente de los lenguajes de programación más populares vio a C en un punto muerto virtual con Java, derribando a este último de su percha por primera vez en cinco años.

En su nuevo libro, Extreme C (izquierda), Kamran Amini describe las características esenciales del lenguaje antes de pasar a la encapsulación y la composición, la sincronización, así como la programación avanzada, con ejemplos de código, y la integración con otros lenguajes, incluidos C ++, Java y Python.

Este extracto, exclusivo de Desarrollador, explora las estructuras dentro de C, así como toca las razones detrás de la longevidad continua del lenguaje de casi 50 años.

Desde la perspectiva del diseño, las estructuras son uno de los conceptos más fundamentales en C. Hoy en día, no son exclusivas de C, y puede encontrar sus conceptos gemelos en casi todos los lenguajes de programación modernos.

Pero deberíamos discutirlos en la historia de la computación cuando no había otros lenguajes de programación que ofrecieran tal concepto. Entre muchos esfuerzos para alejarse de los lenguajes de programación a nivel de máquina, la introducción de estructuras fue un gran paso para tener encapsulamiento en un lenguaje de programación Durante miles de años, la forma en que pensamos no ha cambiado mucho, y la encapsulación ha sido un medio central para nuestro razonamiento lógico.

Pero fue justo después de C que finalmente tuvimos una herramienta, en este caso, un lenguaje de programación, que fue capaz de comprender la forma en que pensamos y podía almacenar y procesar los componentes básicos de nuestro razonamiento. Finalmente, obtuvimos un lenguaje que se asemeja a nuestros pensamientos e ideas, y todo esto sucedió cuando obtuvimos estructuras. Las estructuras C no eran perfectas en comparación con los mecanismos de encapsulación que se encuentran en los lenguajes modernos, pero fueron suficientes para que pudiéramos construir una plataforma sobre la cual crear nuestras mejores herramientas.

¿Por qué estructuras?

Sabes que cada lenguaje de programación tiene algunos Tipos de datos primitivos (PDT). Con estos PDT, puede diseñar sus estructuras de datos y escribir sus algoritmos a su alrededor. Estos PDT son parte del lenguaje de programación y no se pueden cambiar ni eliminar. Como ejemplo, no puede tener C sin los tipos primitivos En t y doble.

Las estructuras entran en juego cuando necesita tener sus propios tipos de datos definidos, y los tipos de datos en el idioma no son suficientes. Tipos definidos por el usuario (UDT) son aquellos tipos que son creados por el usuario y no son parte del lenguaje.

Tenga en cuenta que los UDT son diferentes de los tipos que podría definir usando typedef. La palabra clave typedef en realidad no crea un nuevo tipo, sino que define un alias o sinónimo para un tipo ya definido. Pero las estructuras le permiten introducir UDT totalmente nuevos en su programa.

Las estructuras tienen conceptos gemelos en otros lenguajes de programación, por ejemplo, clases en C ++ y Java o paquetes en Perl. Se consideran los máquinas de escribir en estos idiomas

¿Por qué tipos definidos por el usuario?

Entonces, ¿por qué necesitamos crear nuevos tipos en un programa? La respuesta a esta pregunta revela los principios detrás del diseño de software y los métodos que usamos para nuestro desarrollo diario de software. Creamos nuevos tipos porque lo hacemos todos los días usando nuestros cerebros en un análisis de rutina.

No miramos nuestro entorno como números enteros, dobles o personajes. Hemos aprendido a agrupar atributos relacionados bajo el mismo objeto. Pero como respuesta a nuestra pregunta inicial, necesitamos nuevos tipos porque los usamos para analizar nuestros problemas como un nivel más alto de lógica, lo suficientemente cerca de nuestra lógica humana.

Aquí, debes familiarizarte con el término lógica de negocios. La lógica de negocios es un conjunto de todas las entidades y regulaciones que se encuentran en un negocio. Por ejemplo, en la lógica de negocios de un sistema bancario, usted enfrenta conceptos como cliente, cuenta, saldo, dinero, efectivo, pago y muchos más, que están ahí para hacer posibles y significativas operaciones como el retiro de dinero.

Suponga que tiene que explicar alguna lógica bancaria en enteros puros, flotantes o caracteres. Es casi imposible. Si es posible para los programadores, casi no tiene sentido para los analistas de negocios. En un entorno de desarrollo de software real que tiene una lógica empresarial bien definida, los programadores y los analistas empresariales cooperan estrechamente. Por lo tanto, necesitan tener un conjunto compartido de terminología, glosario, tipos, operaciones, regulaciones, lógica, etc.

Hoy, un lenguaje de programación que no admite nuevos tipos en su sistema de tipo puede considerarse como un idioma muerto. Quizás es por eso que la mayoría de las personas ven a C como un lenguaje de programación muerto, principalmente porque no pueden definir fácilmente sus nuevos tipos en C, y prefieren pasar a un lenguaje de nivel superior como C ++ o Java. Sí, no es tan fácil crear un buen sistema de tipos en C <pero todo lo que necesita está presente allí.

Incluso hoy en día, puede haber muchas razones para elegir C como el lenguaje principal del proyecto y aceptar los esfuerzos de crear y mantener un buen sistema de tipos en un proyecto C e incluso hoy en día muchas empresas lo hacen.

A pesar de que necesitamos nuevos tipos en nuestro análisis diario de software, las CPU no entienden estos nuevos tipos. Las CPU intentan adherirse a los PDT y a los cálculos rápidos porque están diseñados para hacerlo. Por lo tanto, si tiene un programa escrito en su lenguaje de alto nivel, debe traducirse a las instrucciones de nivel de CPU, y esto puede costarle más tiempo y recursos.

En este sentido, afortunadamente, C no está muy lejos de la lógica de nivel de CPU y tiene un sistema de tipos que se puede traducir fácilmente. Es posible que haya escuchado que C es un lenguaje de programación de bajo nivel o de hardware. Esta es una de las razones por las que algunas empresas y organizaciones intentan escribir y mantener sus marcos centrales en C, incluso hoy.

Este extracto está tomado de Extreme C, de Kamran Amini, publicado por Packt. Puede obtener más información y comprar su copia visitando aquí.

¿Está interesado en escuchar a los líderes de la industria discutir temas como este y compartir sus casos de uso? Asistir a la ubicación conjunta Expo 5G, IoT Tech Expo, Expo Blockchain, Expo AI y Big Datay Cyber ​​Security & Cloud Expo Serie Mundial con próximos eventos en Silicon Valley, Londres y Amsterdam.

Historias relacionadas

By Erica Flores

Enamorada de la tecnología. Apasionada de la velocidad que la información puede adquirir en este mundo cambiante. Actualmente residiendo en Barcelona.