Sei sulla pagina 1di 15

UNIVERSIDAD METROPOLITANA DE EDUCACIÓN CIENCIA Y

TECNOLOGÍA «UMECIT»

LENGUAJE DE PROGRAMACION IV

INTEGRANTES:
CHARLIES ESCARTÍN

OSIRIS GARCÍA

PROFESOR:

MANUEL ARAUZ

AÑO:
2019
ÍNDICE
INTRODUCCIÓN.......................................................................................................3
LA NOCIÓN DE ESTRUCTURA EN UN LENGUAJE DE PROGRAMACIÓN........4
SINTAXIS CONCRETA (BNF) Y ABSTRACTA. SEMÁNTICA...............................5
ESPECIFICACIÓN DE LA SEMÁNTICA DENOTACIONAL...................................9
ESPECIFICACIÓN DE LA SEMÁNTICA OPERACIONAL....................................10
SINTAXIS CONCRETA Y ABSTRACTA DE LA LÓGICA DE PRIMER ORDEN
(LPO).......................................................................................................................11
ALCANCE Y LIGADURAS DE VARIABLES EN LPO...........................................12
CONCLUSIÓN.........................................................................................................13
BIBLIOGRAFÍA.......................................................................................................14
INTRODUCCIÓN
Veremos algunos puntos importantes en como se usan los símbolos lógicos en
oraciones como condiciones, así como las sintaxis abstractas y concretas de
algunos temas entre otras.
LA NOCIÓN DE ESTRUCTURA EN UN LENGUAJE DE PROGRAMACIÓN
¿Qué es un lenguaje de programación?

En informática, se conoce como un lenguaje de programación a un programa


destinado a la construcción de otros programas informáticos. Su nombre se debe
a que comprende un lenguaje formal que está diseñado para organizar algoritmos
y procesos lógicos que serán luego llevados a cabo por un ordenador o sistema
informático, permitiendo controlar así su comportamiento físico, lógico y su
comunicación con el usuario humano.

Dicho lenguaje está compuesto por símbolos y reglas sintácticas y semánticas,


expresadas en forma de instrucciones y relaciones lógicas, que definen la
estructura principal del lenguaje y mediante las cuales se construye el código
fuente de una aplicación o pieza de software determinado.

Definición de una estructura.

Los lenguajes de programación tienen una estructura compleja que se compone


de varias partes: sintaxis, semántica, elementos del lenguaje, nivel de
abstracción, paradigma, estructuras de control para ordenar la ejecución de
los programas, tipos de datos (números, letras, etc.), y funciones o
procedimientos (unidades) que contienen un conjunto de instrucciones, entre
otras.
SINTAXIS CONCRETA (BNF) Y ABSTRACTA. SEMÁNTICA
Cuando aparecieron los primeros lenguajes de tercera generación, los
compiladores se construían para un lenguaje concreto basándose en la
descripción del lenguaje de programación correspondiente. Esta descripción se
proporcionaba en lenguaje natural (inglés) en forma de manuales de referencia del
lenguaje y constaba de tres partes: la descripción léxica del lenguaje, que
específica cómo se combinan símbolos para formar palabras; la descripción
sintáctica, que establece las reglas de combinación de dichas palabras para
formar frases o sentencias; y la descripción semántica, que trata del significado de
las frases o sentencias en sí.

El problema de realizar la descripción en lenguaje natural es la ambigüedad: el


lenguaje natural está lleno de ambigüedades y es difícil ser muy preciso en la
descripción de estos elementos del lenguaje. Por ello, a finales de los años 50,
mientras diseñaba el lenguaje Algol 58 para IBM, John Backus ideó un lenguaje
de especificación para describir la sintaxis de este lenguaje.

Posteriormente, Peter Naur retomó su lenguaje de especificación y lo aplicó para


definir la sintaxis de Algol 60 y lo llamó Backus Normal Form. Finalmente, este
lenguaje de especificación acabó llamándose BNF (de Backus-Naur Form) y ha
sido el estándar de facto para la descripción de la sintaxis de muchos lenguajes de
computadora, como lenguajes de programación o protocolos de comunicación.

La sintaxis es el conjunto de reglas que gobiernan la construcción o formación de


sentencias (instrucciones) válidas en un lenguaje. La sintaxis de un lenguaje de
programación es el aspecto que ofrece el programa. Proporcionar las reglas de
sintaxis para un lenguaje de programación significa decir cómo se escriben los
enunciados, las declaraciones y otras construcciones del lenguaje.

La sintaxis, cuya definición sería “la disposición de palabras como elementos en


una oración para mostrar su relación”, describe la serie de símbolos que
constituyen programas válidos.
Solamente las sentencias correctamente sintácticas pueden ser traducidas por un
lenguaje de programación, los programas que contienen errores de sintaxis son
rechazados por la computadora.

Las reglas sintácticas son los métodos de producción de sentencias o


instrucciones válidas que permitirán formar un programa. Estas permiten
reconocer si una cadena o serie de símbolos es correcta gramaticalmente y a su
vez información sobre su significado o semántica.

Para definir las reglas sintácticas se suele utilizar la formalización de Backus-Naur-


Form y la sintaxis abstracta. La notación BNF es uno de los métodos empleados
para la definición de reglas sintácticas y se concibió para que se permitiera decidir
en forma algorítmica cuándo una es válida o no en un lenguaje.

La sintaxis es abstracta en el sentido que no representa cada detalle que aparece


en la sintaxis verdadera. Los ATS (Abstract Syntax Trees o Árbol de Sintaxis
Abstracta) sirven para manejar la información semántica de un código. Es una
representación de árbol de la estructura sintáctica abstracta (simplificado) del
código fuente escrito en cierto lenguaje de programación. Cada nodo del árbol
denota una construcción que ocurre en el código fuente.

La sintaxis de un lenguaje específica cómo deben disponerse los componentes


elementales del lenguaje para formar sentencias válidas. La semántica se encarga
de comprobar el correcto sentido de las sentencias construidas. La especificación
semántica del lenguaje establece cómo se comportan los diferentes elementos del
lenguaje.
Hay muchos enfoques a las semánticas formales, las cuales pertenecen a tres
categorías principales:

 Semántica denotacional, por medio de las cuales cada frase en el


lenguaje es interpretada como una denotación. Tales denotaciones a
menudo son objetos matemáticos que habitan espacios matemáticos, pero
no es un requerimiento que estas deban serlo. Como una necesidad
práctica, las denotaciones se describen usando alguna forma de notación
matemática, la cual en turno puede ser formalizada como un metalenguaje
denotativo.
 Semántica operacional, donde la ejecución del lenguaje se describe
directamente (en vez de hacerse mediante el uso de una traducción). Las
semánticas operacionales tienen que ver con las interpretaciones.
 Semántica axiomática, a través de la cual se le da significado a las frases
describiendo los axiomas lógicos que se aplican a ellas. No hacen distinción
entre un significado de una frase y las fórmulas lógicas que la describen, su
significado es exactamente lo que se puede probar de ella en alguna lógica.
Especificación de la sintaxis abstracta.

Pasos:

1. Identificación de conceptos
 No se deben considerar conceptos ligados a la notación.
 Identificar casos de uso del lenguaje.
 Construir modelos ejemplos.
 A partir de una lista de conceptos candidatos.
2. Crear un modelo conceptual
 Posibilidad de reutilizar uno existente
3. Escribir las reglas de semántica estática
Las reglas de la semántica estática se dividen en dos:
 Semántica de traducción: Es el proceso de utilización de la
información semántica para ayudar en la traducción de los datos en
un documento a otro documento.
 Semántica basada en la traza:
a) Uso de un depurador.
b) Se define un lenguaje de traza de la ejecución gráfico o textual.
c) Se establece una correspondencia entre las expresiones del DSL y
las trazas (de forma constructiva o declarativa).
4. Validar y chequear el metamodelo
ESPECIFICACIÓN DE LA SEMÁNTICA DENOTACIONAL
En general, el propósito de la semántica denotacional es proporcionar las
descripciones matemáticas de los lenguajes de programación de forma
independiente de su comportamiento operativo, es decir, deja de poner el foco en
el “cómo” para centrarse en el “qué”. Hace uso extensivo de la lambda cálculo (en
su versión extendida de recursión) para esta tarea, sea cual sea el lenguaje de
programación que use el programa que queremos verificar, por lo que no resulta
extraño que sea especialmente adecuado para los lenguajes de programación
funcionales, que también se basan en ese mismo formalismo.
ESPECIFICACIÓN DE LA SEMÁNTICA OPERACIONAL
Es una categoría de semántica de lenguaje de programación formal en donde
describe como un programa valido es interpretado a partir de declaraciones
lógicas sobre su ejecución y procedimientos en lugar de adjuntar significados
matemáticos a sus términos como la (Semántica denotacional).

En ella se clasifica en dos categorías las cuales son:

La semántica operacional estructural (o semántica de pequeños pasos):


describe formalmente como se llevan a cabo los pasos individuales de un cálculo
en un sistema basado en computadora.

Semántica natural (o semántica de gran paso): describe cómo se obtienen los


resultados generales de las ejecuciones.
SINTAXIS CONCRETA Y ABSTRACTA DE LA LÓGICA DE PRIMER ORDEN
(LPO)
LPO también conocida como lógica de predicados, lógica cuantificacional y cálculo
de predicados de primer orden es una colección de sistemas formales utilizados
en matemáticas, filosofía, lingüística y ciencias de la computación. utiliza variables
cuantificadas sobre objetos no lógicos y permite el uso de oraciones que contienen
variables.

La sintaxis determina qué colecciones de símbolos son expresiones legales en la


lógica de primer orden

La semántica determina los significados detrás de estas expresiones el resultado


es que a cada término se le asigna un objeto que representa, a cada predicado se
le asigna una propiedad de objetos y a cada oración se le asigna un valor de
verdad. De esta manera, una interpretación proporciona un significado semántico
a los términos, los predicados y las fórmulas del lenguaje.

Las relaciones entre predicados se pueden establecer utilizando conexiones


lógicas. por ejemplo: "si a es filósofo, entonces a es erudito". Esta fórmula es
una declaración condicional con " a es un filósofo" como hipótesis y " a es un
erudito" como conclusión.
ALCANCE Y LIGADURAS DE VARIABLES EN LPO
En una fórmula, una variable puede aparecer libre o unida (o ambas). una variable
es libre en una fórmula si no se cuantifica: en ∀ yP(x , y ).
CONCLUSIÓN
Todos los conceptos hablados anteriormente nos ayudan para abordar los
aspectos formales de la programación todo esto va relacionado uno con el otro ya
que nos brindan a conocer más sobre el tema ya que vemos la programación de
un punto de vista distinto al que es en forma teórica.
BIBLIOGRAFÍA
La noción de estructura en un lenguaje de programación. (3 de Febrero de 2017).
Obtenido de prezi.com: https://prezi.com/m/x5g0mnky8aqk/la-noc

Lógica de primer orden. (30 de Julio de 2019). Obtenido de Es.wikipedia.org:


https://es.wikipedia.org/wiki/Lógica_de_primer_orden

Operational semantics. (23 de Septiembre de 2019). Obtenido de


En.wikipedia.org: https://en.wikipedia.org/wiki/Operational_semantics#Small-
step_semantics

Potrebbero piacerti anche