Introducción

Introducción

Dado que en nuestra primera parte de este artículo dijimos que esperábamos que usted, el lector, tenga algunos conocimientos de programación, en esta parte queremos ayudarlo a obtener A en el lugar donde C se encuentra en comparación con otros lenguajes de programación que puede saber. La elección de esos idiomas fue bastante difícil debido a varios criterios, pero al final nos detuvimos en C ++, Perl y Python. Dado que los lenguajes de programación se pueden clasificar de muchas maneras (dependiendo del paradigma, la sintaxis o el estilo, por ejemplo), no intentamos encontrar idiomas que estén en la misma categoría que C. En cambio, dado que los idiomas antes mencionados son bastante populares en el mundo de Linux, los elegimos, mencionando lo que cada lugar es el gran esquema, para qué se usa generalmente y, por supuesto, las diferencias entre ellos y C. Este artículo se estructurará de la siguiente manera: comenzaremos con elementos importantes de cada idioma, como la declaración variable, la escritura o la estructura y compararemos eso con cómo se hace con C. Por lo tanto, esperamos darle una idea sobre el idioma antes de comenzar. Las piezas de las que está hecha este artículo serán exactamente como la estructura anunciada de este artículo, para facilitar la comprensión.

La comparación

Tipos, operadores, variables

C++

C ++ se llamó inicialmente "C con clases", que dice mucho sobre su relación con C. Se ve ampliamente como un superconjunto de C (por lo tanto, C ++ el operador de incremento unario ++), introduciendo características de programación orientadas a objetos. Los tipos se usan esencialmente los mismos, con bool siendo introducido en C ++ para operaciones booleanas. Básicamente, cuando se habla de las diferencias de C y C ++, la mayoría de ellas provienen de los conceptos de OOP C ++ tiene y C no. Por ejemplo, C ++ tiene una sobrecarga del operador, un término específico de OOP, lo que significa que un operador puede tener diferentes implementaciones dependiendo de los datos en los que está operando. Por ejemplo, en C ++ puedes hacer esto:

 a << 2 

Ahora, si A es un entero, esto hará una operación de bit en él (desplazamiento izquierdo por 2), pero si a es una secuencia de salida, la línea anterior intentará escribirle un '2'. Este tipo de comportamiento es una de las razones por las que C ++ es criticado por permitir las malas prácticas de programación. Las variables y las constantes se declaran de la misma manera que en C.

Perl

Con perl es más simple: solo tiene tres tipos de datos. Estos son escalares, matrices y hash o matrices asociativas. Los escalares tienen un prefijo con un signo de dólar, las matrices tienen un prefijo @ y los hashes tienen un prefijo con %s. La diferencia con respecto a los tipos es que Perl es un lenguaje de programación dinámico, mientras que C es de tipo débil, lo que significa que en C se ocupará de las declaraciones adecuadas de variables, como "Esta variable es un entero" o "Esta otra variable es un puntero a un flotador ". Las diferencias con respecto a los operadores aritméticos son solo que Perl tiene '**' para la exponenciación, mientras que C necesita una función para lograr eso.

Pitón

La declaración variable de Python está basada en el contexto. Por ejemplo, queremos declarar una cadena, un entero y un flotador:

var1 = "Cadena" Var2 = 100 var3 = 100.98

Con C, esto habría sido como

char* var1 = "cadena"; int var2 = 100; flotante var3 = 100.98;

C no tiene un tipo de cadena como lo hacen otros idiomas, por lo que una cadena debe declararse como una variedad de caracteres o un puntero a un carbón, mientras que Python ofrece números, diccionarios, cadenas, listas y tuplas como tipos de datos.

Control de flujo

Los cuatro idiomas descritos aquí tienen muchas cosas en común cuando se trata de control de flujo. Por ejemplo, al comenzar un si bloque, ninguno requiere una palabra clave final, como FI en Bash o Algol68. Hablando de bloques de IF, la sintaxis es similar, por lo que si solía programar en C ++, Perl o Python, encontrará muy familiarizado C. Lo mismo puede decirse del resto de las operaciones de control de flujo: para, do, mientras, interruptor/caso o interrupción/continuar. Nuevamente, si está acostumbrado a la forma en que los tres idiomas controlan el flujo, necesitará unos minutos para acostumbrarse a C. Algunas diferencias principales podrían ser: Perl tiene más palabras clave para lidiar con esto que C, como rehacer, último o próximo. Python tiene el aprobar Palabra clave para ... no hacer nada básicamente, pero es útil cuando uno necesita una clase vacía. Por ejemplo:

clase Vacío: aprobar

Funciones

Una declaración de función simple en C sería así:

int sum (int a, int b)  devolver a + b; 

Esta sería una función llamada suma que devuelve un entero de calcular la suma de sus 'argumentos, a y b, también enteros. Nota la bloques que hacen una clara delimitación sobre dónde comienza el cuerpo de la función y cuándo termina. En perl, la función de término se usa indistintamente con subrutina. Puede, como en C, primero declarar una función, luego definirla, o declararlo y definirlo de una vez, como lo hicimos anteriormente. Tienes que usar el sub palabra clave para decirle al intérprete de perl lo que quiere hacer. En Python, nuestro ejemplo de suma se vería así:

defensor suma (a, b): devolver a + b

Quizás te diste cuenta de que no dijimos nada sobre C++. Bueno, en lo que a nosotros respecta, no hay diferencia entre C y C ++ a este respecto.

Punteros y matrices

Un puntero es una variable que contiene la ubicación de la memoria de otra variable. Como en C, los punteros y las matrices se unen bastante bien y ofrecen muchas características avanzadas al programador C ++. De nuevo, no hay una diferencia importante entre los dos. Perl tiene referencias que ofrecen la misma funcionalidad. Por ejemplo, esta pieza de código define una variable llamada VAR y una referencia a ella llamada Refvar:

$ var = 20; $ refvar = \ $ var;

En C, habríamos hecho algo como

int var; var = 20; int *refvar; Refvar = &var;

Perl, como Python, no permite que el programador haga manipulación de memoria directa. Algunos ven esto como algo bueno, otros no. Python ofrece ctypes, que es una biblioteca que ofrece la función Pointer () para usar punteros. La historia corta es: Python no usa punteros. La larga historia es que la forma de Python para referencia a las variables, es decir, solo por valor, es diferente a un programador utilizado para c.

Si usó matrices en C ++ o Perl, el concepto es principalmente el mismo. Perl tiene una sintaxis diferente, pero si ya sabe qué es una matriz, estará bien en C. Python ofrece el formación Módulo que ofrece esta funcionalidad, porque ya tiene listas como un tipo básico, excepto que las matrices son más restrictivas.

Estructuras

En C, una estructura es un registro que contiene un conjunto de objetos fijo y etiquetado, todo envuelto en uno. Por ejemplo:

estructura Cliente cuenta int; nombre del personaje; equilibrio flotante; ;

Citando a Wikipedia, "En C ++, un estructura es una clase definida con el estructura palabra clave. Sus miembros y clases de base son públicos por defecto. Una clase definida con el clase La palabra clave tiene miembros privados y clases base de forma predeterminada. Esta es la única diferencia entre estructuras y clases en C++.". En Perl hasta la versión 5, las estructuras eran un problema (o falta de ella), pero ahora hay perldsc (Libro de cocina de Estructuras de datos de Perl), disponible en PERLDOC.organizar. En Python siempre puedes (bueno, casi) usar tuplas o diccionarios para esto.

Incluyendo archivos

Como ha visto en la primera parte, en C se usa directivas preprocesador para incluir definiciones de otros archivos. Esta funcionalidad es ofrecida también por C ++, con la misma sintaxis, excepto que los archivos de encabezado se denominan $.HPP y que no necesita la extensión del archivo:

#incluir 

iOStream es el equivalente de C ++ de stdio.H. En Perl, tenemos el usar Palabra clave para esto, y se puede usar como esto:

usar Módulo;

En Python, el equivalente al uso es importar, Usado exactamente de la misma manera que en Perl, excepto que no requiere un punto y coma al final.

Otras Consideraciones

Muchos de ustedes han notado que todos los idiomas elegidos para nuestra comparación están orientados a objetos, mientras que C no está. Esta no es una comparación injusta, porque si hubiéramos elegido Fortran o Prolog como nuestros Términos de comparación, es probable que, ya que muchos programadores de hoy no usan estos idiomas, que nuestro artículo no hubiera sido muy popular. Por otro lado, pensamos en esto como una forma de mojarse los pies, porque el hábito es parte de la naturaleza humana y si alguna vez usaste uno o más de estos idiomas, será más fácil para ti cuando comiences a aprender C. Entonces, esta parte del artículo se pretende como una mano amiga y si logramos hacer eso, está bien.

C y C++

Algunos de ustedes pueden preguntarse: si C ++ es muy similar a C, pero es más complejo y ofrece más, ¿por qué molestarse con C? Este ha sido un tema discutido más de lo que debería haber sido, e intentaremos dar una respuesta propia. En primer lugar, C es más simple. K&R tiene 266 páginas, mientras que "el lenguaje de programación C ++" del Creador, Bjarne Stroustrup, tiene 1090. 'Nuff dijo. Segundo, código existente. Independientemente de la arquitectura de hardware, el sistema operativo o el propósito, C está muy extendido y luego algunos. Desde núcleos del sistema operativo hasta bibliotecas de la GUI, C está allí y no tiene intención de salir a ningún lado. Eso no quiere decir que C ++ no se use por muchos desarrolladores. Solo estamos diciendo que tarde o temprano tendrá que trabajar con el código C o usar un lenguaje influenciado por él, por lo que el conocimiento C siempre es guapo en un CV. Tercero, si desea aprender C y C ++, es mejor que comience con C, debido a su 'simplicidad antes mencionada y porque una vez que tenga lo básico, C ++ se verá más fácil de aprender. Finalmente, se trata de la herramienta adecuada para el trabajo. Si necesita código rápido, la capacidad de ir de bajo nivel y un lenguaje simple, vaya con C.

Conclusión

Después de esta segunda parte de este artículo, comenzaremos a aprender la programación C en Linux, ya que creemos que demasiadas partes introductorias no tienen sentido. Estaremos pero me alegramos de ayudarte allí.

Esto es lo que puede esperar a continuación:

  • I. C Desarrollo en Linux - Introducción
  • II. Comparación entre C y otros lenguajes de programación
  • III. Tipos, operadores, variables
  • IV. Control de flujo
  • V. Funciones
  • VI. Punteros y matrices
  • VII. Estructuras
  • VIII. E/S básica
  • Ix. Estilo de codificación y recomendaciones
  • X. Construyendo un programa
  • Xi. Embalaje para Debian y Fedora
  • Xii. Obtener un paquete en los repositorios oficiales de Debian

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Mejor lector de PDF para Linux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cosas para instalar en Ubuntu 22.04
  • Cómo instalar Adobe Acrobat Reader en Ubuntu 22.04 Jammy ..
  • Introducción a Vagrant
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Ubuntu 20.04 Guía
  • Sistema colgado de Linux? Cómo escapar a la línea de comando y ..