Está en la página 1de 11

UNIVERSIDAD AUTÓNOMA DE GUADALAJARA

Alumno: José Pedro Obrador García


Matricula: 4913117
Carrera: Ingeniería Mecatrónica
Maestro: Juan Carlos Alcudia Uicab
Materia: Fundamentos de la Programación
08/Sep/2022
GENERALIDADES DE UN LENGUAJE
ESTRUCTURA DE UN PROGRAMA
Un programa informático (programa) es una secuencia de acciones (instrucciones)
que manipulan un conjunto de objetos (datos). Existen dos partes o bloques que
componen un programa:
• Bloque de declaraciones: en este se detallan todos los objetos que utiliza el
programa (constantes, variables, archivos, etc.).
• Bloque de instrucciones: conjunto de acciones u operaciones que se
han de llevar a cabo para conseguir los resultados esperados.

El bloque de instrucciones está compuesto a su vez por tres partes, aunque en


ocasiones no están perfectamente delimitadas, y aparecerán entremezcladas en la
secuencia del programa, podemos localizarlas según su función. Estas son:

• Entrada de datos: instrucciones que almacenan en la memoria interna datos


procedentes de un dispositivo externo.
• Proceso o algoritmo: instrucciones que modifican los objetos de entrada y,
en ocasiones, creando otros nuevos.
• Salida de resultados: conjunto de instrucciones que toman los datos finales
de la memoria interna y los envían a los dispositivos externos.
CARACTERÍSTICAS DEL LENGUAJE

Compilado

En un lenguaje compilado el código fuente antes de ser ejecutado es convertido a


lenguaje máquina (C, C++) aunque también puede ser convertido a representación
intermedia que posteriormente es interpretada y convertida a lenguaje
máquina JIT (Java, C#). El compilador puede detectar una gran cantidad de errores
que en un lenguaje interpretado o de tipado dinámico se descubrirían en tiempo de
ejecución.

Interpretado

En un lenguaje interpretado el código fuente es compilado a código máquina en el


momento de su ejecución. Ejemplos de lenguajes interpretados son
Python, Ruby, PHP, JavaScript.

Paradigma

El paradigma de programación es como se estructuran los programas para realizar


las tareas de computación. Los principales paradigmas de programación son:

• Imperativos: los programas se codifican como una secuencia de operaciones


que definen explícitamente las operaciones que se realizan. Un ejemplo de
lenguaje imperativo es C.
• Declarativos: estos lenguajes simplemente definen el resultado deseado y es
el intérprete de ese lenguaje que calcula las operaciones necesarias para
obtenerlo. Ejemplos de lenguajes declarativos son SQL o HTML.
• Orientación a objetos: en estos lenguajes los datos y operaciones sobre esos
datos se encapsulan en objetos. Ejemplos de lenguajes orientados a objetos
son Java y C#.
• Funcionales: son una forma de lenguaje declarativo que se basa en el uso
en el uso de funciones que reciben datos, realizan cálculos sobre estos datos
y devuelven resultados sin modificar los datos originales.

Tipado estático y tipado dinámico

En un lenguaje de tipado estático las comprobaciones de tipos se realizan en tiempo


de compilación (C, C++, Java). Los tipos pueden ser declarados de forma explícita
o de forma inferida según el análisis del código fuente que realiza el compilador.

Por el contrario, el tipado dinámico comprueba los tipos en el momento de ejecución


del programa (PHP, Python, Groovy, JavaScript). A esos lenguajes se les conoce
como lenguajes dinámicos.
Fuerte y débilmente tipado

En un lenguaje fuertemente tipado un dato con un tipo no puede ser usado como si
fuese de otro. Aunque algunos lenguajes como Java se dicen que son fuertemente
tipado tienen algunas laxitudes. Por ejemplo, en Java un float puede usarse como
si fuese un double y en otros lenguajes con menor grado de tipificación como PHP
un string puede ser usado como un dato numérico.

Inferencia de tipos

En base al análisis del código fuente se puede inferir el tipo de las variables evitando
que el programador los declare explícitamente continuamente.

Closures y lambdas

Un closure es una referencia a una función que puede referenciar las variables del
contexto en el que está definida. Una lambda es simplemente una referencia a una
función anónima. En Java las lambdas pueden referenciar variables declaradas
como final, esto es, sean constantes.

Defaults methods y traits

Un trait define una colección de métodos posiblemente incluyendo también su


implementación, además, pueden definir propiedades. Los defaults methods de
Java pueden definir implementaciones en algunos métodos de interfaces.

High order functions

Las funciones de orden superior son funciones que toman como argumentos una o
más funciones o devuelven como resultado otra función.

Currying

La currificación consiste en transformar una función con al menos dos argumentos


en una función con al menos un argumento menos.

Duck typing

Este concepto es usado en los lenguajes de tipado dinámico tratando a las variables
no por su tipo o herencia sino en base a las propiedades y métodos que soporta
(Python, PHP, Groovy, JavaScript).
Intersection types y Union types

Ceylon tiene un sistema de tipos más avanzado (y complejo) que Java, una
expresión es asignable a un intersection types X & Y si esa expresión es asignable
a X e Y individualmente. Una expresión es asignable a un union type X | Y si es
asignable a X o Y.

Named arguments

Cuando invocamos un método con argumentos, los argumentos se asignan a los


parámetros de la función según el orden en que son declarados. Los named
arguments permiten asignar los argumentos a los parámetros de la función por sus
nombres.

Destructuring assignment

La asignación desestructurada permite extraer datos de arrays y objetos usando


una sintaxis réplica de la construcción de arrays y literales de objetos.

Tuples

Las tuplas son una estructura de datos formada por varios tipos, en Java 8 puede
usarse la librería vavr que añade esto y otras funcionalidades interesantes. En
algunos lenguajes puede combinarse con la asignación desestructurada.
TIPOS DE DATOS, VARIABLES Y OPERADORES

Datos

Constantes

Una constante es un valor que no puede ser alterado/modificado durante la


ejecución de un programa, únicamente puede ser leído.

La estructura es:

static final tipo de dato nombre constante = valor;

Variables
Un tipo de dato, al que se ha asignado un valor, que puede variar durante la
ejecución del programa. Las variables tienen 3 estados:

• Declaración
• Inicialización
• Utilización
Operadores
SENTENCIAS DE CONTROL
Las sentencias o estructuras de control permiten tomar decisiones y realizar un
proceso en repetidas veces. Son las denominadas bifurcaciones y bucles. Estas
estructuras son muy importantes puesto que son las encargadas de controlar el flujo
de un programa según los requerimientos de este.
Sentencia IF, THEN, ELSE, END IF
Permite ejecutar condicionalmente una o más sentencias, Su representación es así:

En la representación anterior, si se cumple la primera condición, es decir condición


1 = True, entonces el programa continuo su ejecución por el Grupo1 de Sentencias,
si no se cumple, pasa a evaluar condición 2, y si es cierta se ejecuta el Grupo 2 de
Sentencias y si es falsa evalúa condición 3 y así se continúa hasta el encontrar un
Else If (puede haber tantos como se precisen) que contenga una condición
verdadera para ejecutar su grupo de sentencias. Si ninguna condición de las
evaluadas es cierta, se ejecuta el Grupo de Sentencias de la cláusula Else.
En esta sentencia de control las únicas cláusulas obligatorias son If Then
pudiéndose prescindir si es necesario de Else, Else If Then y End If
ABSTRACCIÓN PROCEDIMENTAL
La abstracción procedimental es cuando sabemos lo que hace un método o
procedimiento, o lo que queremos que haga, pero no sabemos cómo lo hace.
En este momento, estoy escribiendo esta respuesta en Quora, y cuando hago clic
en Enviar, espero que aparezca en mi feed. Sé que hay métodos que aceptarán mi
respuesta, guárdelo en algún lugar. Pero realmente no tengo ni idea de cómo se
implementa.
Si aplicamos esto a Java, usarás muchos métodos, de los distintos paquetes de
Java. Por ejemplo, si quiero imprimir la subcadena de una cadena
Abstracción: Operación intelectual que ignora selectivamente partes de un todo para
facilitar su comprensi´on. Abstracci´on en la resoluci´on de problemas: Ignorar
detalles específicos buscando generalidades que ofrezcan una perspectiva distinta,
más favorable a su resolución.
Mecanismos de Abstracción en Programación

• Abstracción por parametrización. Se introducen parámetros para abstraer un


número infinito de computaciones.
• Abstracción por especificaciones. Permite abstraer se de la implementación
concreta de un procedimiento asociándole una descripción precisa de su
comportamiento.
Referencia:

• Novedades y nuevas características de Java 8


• 10 razones para seguir usando Java
• Codigosdeprogramacion.com
• Estructura de un programa informático
• Sentencias de control. Sentencia If, Then, Else, End If
• Abstracción en Programación – Universidad de Granada
• ¿Qué es la abstracción procedimental? | Referenz

También podría gustarte