Si estás buscando información sobre C, C++ o Java, ves al índice. IR AL INDICE
En esta página tienes un breve resumen sobre los lenguajes de programación.
Existen muchos campos bajo este nombre.
Aquí nos centramos en las bases de la programación y conocimiento geneérico y básico de lo que es la programación.
Empezando por las herramientas más básicas para poder construir programas.
Existen tantos lenguajes como se pueda imaginar.
Pero se agrupan en 3 grandes tipos:
- Ensamblados (bajo nivel)
- Compilados (nivel alto)
- Interpretados (nivel alto)
Existen tantos lenguajes como familias de procesadores.
Es una traducción directa de los '1s y 0s' que entiende el ordenador.
Cuentan con un corpus de instrucciones reducido y tienen control directo sobre todo el computador.
Algunos son:
Estos son los lenguajes denomidados de bajo nivel. Se llaman así por la interfaz que ofrece al programador. Estos lenguajes dejan la máquina entera en manos de quien la programa, se puede modificar cada valor existente en la memória. En los lenguajes de más alto nivel, no permiten la modificación directa de la memória del computador, pero a cambio, son más amigables con el programador.
Habitualmente se programa con lenguajes de nivel alto.
Los lenguajes compilados son, por lo general, los más rápidos, después de los ensamblados.
Estos lenguajes tienen 2 fases en su funcionamiento:
- Tiempo de compilación: Cuando se esta compilando un programa pueden surgir problemas como no haber escrito bien el nombre de una función o un tipo de un dato. En esta fase, se esta convirtiendo lo que se ha escrito de un lenguaje a un lenguaje ensamblado.
- Tiempo de ejecución: Una vez compilado, se ejecuta el programa y durante este tiempo pueden ocurrir problemas como el uso de variables mal inicializadas o inputs incorrectos. En esta fase, el procesador esta interpretando el código transformado.
Estos lenguajes son más rápidos ya que se han convertido en lenguaje máquina o ensamblador y no necesitan de volver a ser convertidos cada vez que se ejecutan.
Suelen ser, por lo general, lenguajes que ofrecen mayor seguridad a las aplicaciones que los usan, ya que el código fuente no queda expuesto si no se hace una lectura de memoria en ensamblador para hacer ingenieria inversa u otros métodos; sin embargo, la seguridad depende del programador, no del lenguaje.
Sin los conocimientos necesarios, el desarrollo de aplicaciones se ralentiza.
Además, estos lenguajes suelen depender del sistema operativo para ser compilados de una forma u otra.
Algunos lenguajes son:
Los lenguajes interpretados son los más lentos.
Estos lenguajes funcionan sobre un intérprete que hace a la vez de compilador y de entorno de ejecución, esto hace que se ralentice el proceso entero ya que se hace cada vez que se ejecuta.
Solo tienen errores de ejecución, e inherente a su condición de lenguaje, también de sintaxis.
Lo bueno de estos lenguajes es que no es necesario especificar el tipo de los datos antes de ejecutar el código.
Son multiplataforma y no dependen del sistema operativo siempre y cuando el intérprete se encargue de gestionar las interacciones.
Como dejan expuesto el código fuente, suelen ser más inseguros.
Permiten desarrollar más rápidamente a costa de la velocidad de la propia aplicación.
Los más conocidos son:
- JavaScript
- TypeScript
- Python
- Lua
- C#
- Java (Se compila y se interpreta, tiene todo lo malo de los 2)
Todos estos lenguajes además se separan en débil y fuertemente tipados. Los fuertemente tipados son aquellos que se define el tipo de dato antes de compilarlo o interpretarlo(C/C++, C#, TypeScript). Los débilmente tipados son aquellos que se define el tipo de dato mientras se compila o interpreta(JavaScritp, PHP).
Cada lenguaje de programación tiene una forma específica de trabajar la información y las rutinas que debe realizar un programa.
A la manera que tiene cada lenguaje de abordar este trabajo se le llama paradigma.
Existen 3 grandes paradigmas:
- Imperativo
- Funcional
- Lógico
- Declara explícitamente los pasos del programa y el corpus de variables que necesita.
- Las variables son mutables.
- Se ejecutan los pasos del programa secuencialmente. Existe un corpus de instrucciones que permiten modificar la secuencia de ejecución.
- Declara funciones para un reducido grupo de variables.
- Solo se pueden declarar variables como parametros de una funcion.
- Estas variables son inmutables(nunca cambian de valor).
- Las funciones pueden actuar como variables.
- Uso de la recursión como método iterativo.
- Los programas siguen un esquema lógico, compone al programa usando hechos, predicados y relaciones.
- Las variables son libres, mutables e inmutables, declaradas o no.
- Finalmente se reduce todo a un solo problema de decisión.
- Los programas se componen de objetos, que son unidades de datos responsables de proveer y recaptar información del entorno de ejecución.
- Los objetos tienen subrutinas llamadas métodos y variables internas llamadas atributos.
- Organiza un corpus de entidades en una comunidad para componer el programa, esta comunidad es el entorno de ejecución.
- Se basa en los 3 paradigmas fundamentales para funcionar.
- Permite una sostenibilidad del código de los programas mucho mejor que el resto de paradigmas.
- Se define en los principios SOLID y STUPID como base de su filosofía.
- Se escribe explícitamente que resultado se quiere obtener y la máquina se encarga de generarlo.
- Todos los cálculos, variables o modificaciones en el resultado dependen de la asignación inicial que se realice. Por esto, todas las variables son inmutables.
- Depende de técnicas de reasignación para poder modificar el resultado final.
Existen lenguajes que pueden ser compilados e interpretados y, a su vez, ser débil y fuertemente tipados sin tener un único paradigma asociado o que pueda trabajar en múltiples paradigmas a la vez.
--> INDEX