Está en la página 1de 7

2 Sociedad.

1.3 Cultura y Derecho.

Unidad 2. Concepto de Ciencia y Ciencia Jurídica.


2.1 Conceptos de ciencia, teoría y filosofía.
2.2 Clasificación y características de la ciencia.
2.2.1 Ciencias formales.
2.2.2 Ciencias factuales.
2.2.2.1 Ciencias culturales, del espíritu o sociales.
2.2.2.2 Ciencias normativas.
2.3 Particularidades de la ciencia jurídica.
2.3.1 Dogmática o sistemática jurídica.
2.3.2 Filosofía jurídica.
2.3.3 Sociología jurídica.
2.4 El Derecho como objeto de estudio de la ciencia jurídico.

Unidad 3. Definición del Derecho.


3.1 Análisis de los elementos que pueden contener una
definición del Derecho.
3.1.1 Hecho.
3.1.2 Norma.
3.1.3 Valor.
3.1.4 Otras concepciones.

Unidad 4. Órdenes Normativos.


4.1 Conceptos de ley, regla y norma.
4.2 Diferencias y semejanzas entre las diferentes clase de normas.
4.2.1 Jurídicas.
4.2.2 Morales.
4.2.3 Religiosas.
4.2.4 Convencionalismos sociales.

Unidad 5. Clasificación del Derecho.


5.1 Derecho natural, derecho vigente y derecho eficaz.
5.2 Derecho objetivo y derecho subjetivo.
5.3 Derecho sustantivo y derecho adjetivo.
5.4 Derecho público, derecho privado y derecho social.
5.5 Derecho legislado y derecho consuetudinario.
5.6 Derecho federal, derecho estatal y derecho municipal.
5.7 Derecho nacional, derecho internacional y derecho
comunitario.
5.8 Otras acepciones y ramas del derecho.

Unidad 6. Fuentes del Derecho.


6.1 Concepto de fuente y clasificación.
6.2 Distinción entre fuentes formales, reales e históricas.
6.3 Fuentes formales.
6.3.1 Proceso legislativo.
6.3.2 Proceso jurisprudencial.
6.3.3 Proceso reglamentario.
6.3.4 Proceso consuetudinario.
6.4 Fuentes reales.
6.5 Fuentes históricas.
6.6 Otras fuentes.

Unidad 7. El Estado y Derecho.


7.1 Concepto de Estado.
Jerarquía de Chomsky
En 1956, Noam Chomsky clasificó las gramáticas en cuatro tipos de lenguajes y esta
clasificación es conocida como la jerarquía de Chomsky, en la cual cada lenguaje es
descrito por el tipo de gramática generado. Estos lenguajes sirven como base para la
clasificación de lenguajes de programación. Los cuatro tipos son: lenguajes
recursivamente enumerables, lenguajes sensibles al contexto, lenguajes libres de
contexto y lenguajes regulares. Dichos lenguajes también se identifican como lenguajes
de tipo 0, 1, 2 y 3.

Sea un lenguaje L definido por al menos una gramática G que cumple:

 Si todas las producciones de G tienen la forma A  xB   o  donde A y B son


símbolos no terminales y x es un terminal; entonces G se dice que es una gramática
regular y L es un lenguaje regular o de tipo 3.
 Si todas las producciones de G tienen la forma   donde x es una combinación
de símbolos terminales y no terminales, entonces G se dice que es una gramática libre
de contexto y L es un lenguaje libre de contexto o de tipo 2.
 De ser las producciones de G de la forma   donde A es un símbolo no
terminal cualquiera, x, y, y z son combinaciones de terminales y no terminales, tales
que x e y pueden ser cadenas vacías; entonces se dice que G es una gramática
dependiente del contexto y L es un lenguaje dependiente del contexto o lenguaje de
tipo 1.
 Si ninguna de las gramáticas de L cumple las propiedades anteriores entonces se
dice que es un lenguaje sin restricciones, recursivamente enumerable o de tipo 0.

Desde el punto de vista conjuntival la jerarquía de Chomsky funciona como se ve en al


gráfico:
.

De manera que todos los lenguajes de tipo 3 (LR) son también de tipo 2 (LLC) y los LLC
son de tipo 1 (LDC) son de tipo 0 (LSR o LRE).

Existe una exacta correspondencia entre cada uno de estos tipos de lenguajes y
particulares arquitecturas de máquinas en el sentido que por cada lenguaje de tipo T hay
una arquitectura de máquina A que reconoce el lenguaje de tipo T y por cada arquitectura
A hay un tipo T tal que todos los lenguajes reconocidos por A son de tipo T. La
correspondencia entre lenguajes y arquitectura son mostrados en la siguiente tabla.

Gramática Lenguaje Autómata Normas de


producción
Tipo-0 Recursivamente Máquina de Turing Sin restricciones
enumerable (LRE) (MT)
Tipo-1 Dependiente del Autómatas αAβ → αγβ
contexto (LSC) Linealmente
Acotados
Tipo-2 Independiente del Autómata a Pila A→ γ
contexto (LLC)
Tipo-3 Regular (RL) Autómata Finito A→ aB
A→ a

Lenguajes Recursivamente Enumerables (de tipo 0)

Son los lenguajes naturales. Las gramáticas pueden tener reglas compresoras.

Lenguajes Dependientes del Contexto (sensibles al contexto, de tipo 1)

No existen reglas compresoras, salvo, opcionalmente, la que deriva el axioma a la palabra


vacía. Existen reglas en las que un símbolo no terminal puede derivar a formas
senténciales distintas, según los símbolos que aparezcan a su alrededor.

Lenguajes Independientes del Contexto (de contexto libre, de tipo 2)

La mayoría de los lenguajes de programación entran en ésta categoría.

Lenguajes Regulares (de tipo 3)


Se pueden expresar también mediante expresiones regulares.

Herramientas computacionales ligadas con lenguajes


* Editores de estructuras: “Un editor de estructuras toma como entrada una secuencia
de órdenes para construir un programa fuente. El editor de estructuras no sólo realiza las
funciones de creación y modificación de textos de un editor de textos ordinario, sino que
también analiza el texto del programa, imponiendo al programa fuente una estructura
jerárquica apropiada. De esa manera, el editor de estructuras puede realizar tareas
adicionales útiles para la preparación de programas” Concepto encontrado en el libro de
Compiladores de Addison Wesley, a mi punto de vista estos editores de estructura son los
que se encarga de llevar el orden de las palabras, valla el acomodo y comprobar si la
entrada está formada correctamente. 

* Impresoras estéticas: “Una impresora estética analiza un programa y lo imprime de


forma que la estructura del programa resulte claramente visible” Concepto encontrado en
el libro de Compiladores de Addison Wesley.

* Verificadores estáticos: este verificador lee un programa, lo analiza e intenta descubrir


errores potenciales sin correr el programa, algo muy parecido a la corrección de los
editores de texto como Word. “Un verificador estático puede detectar si hay partes de un
programa que nunca se podrán ejecutar o si cierta variable se usa antes de ser definida”
nos dice Addison Wesley.

* Intérpretes: “En lugar de producir un programa objeto como resultado de una


traducción, un intérprete realiza las operaciones que implica el programa fuente. Muchas
veces los interpretes se usan para ejecutar lenguajes de órdenes, pues cada operador
que se ejecuta en un lenguaje de ordenes suele ser una invocación de una rutina
compleja, como un editor o un compilador”.

HERRAMIENTAS COMPUTACIONALES LIGADAS CON LOS TIPOS DE LENGUAJES

Traductor y su estructura.
Un traductor es un programa que recibe como entrada un texto escrito en un lenguaje,
llamado fuente, y genera como salida otro texto equivalente pero escrito en un lenguaje
diferente denominado objeto. Ejemplos de traductores son los ensambladores y los
compiladores.

En el proceso de traducción se identifican dos fases principales:


 Fase de análisis

 Fase de Síntesis

Compiladores.
Un compilador es un programa informático que traduce un programa escrito en un
lenguaje de programación a otro lenguaje de programación, es decir programa que
permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje
de nivel inferior (lenguaje máquina). Generando un programa equivalente a capaz de
interpretar.

Estructura de un Compilador.
Cualquier compilador debe realizar dos tareas principales: análisis del programa a
compilar y síntesis de un programa en lenguaje máquina. Para el estudio de un
compilador, es necesario dividir su trabajo en fases. Cada fase representa una
transformación al código fuente para obtener el código objeto. En cada una de las fases
se utiliza un administrador de la tabla de símbolos y un manejador de errores.

Componentes en que se divide un compilador:

Análisis Léxico. En esta fase se lee los caracteres del programa fuente y se agrupan en
cadenas que representan los componentes léxicos. A la secuencia de caracteres que
representa un componente léxico se le llama lexema (o con su nombre en inglés token).

Análisis Sintáctico. Los componentes léxicos se agrupan en frases gramaticales que el


compilador utiliza para sintetizar la salida.

Análisis Semántico. Intenta detectar instrucciones que tengan la estructura sintáctica


correcta, pero que no tengan significado para la operación implicada.

Generación de código Intermedio. Se puede considerar esta operación intermedia


como un subprograma para una máquina abstracta, a esta representación debe tener dos
propiedades importantes: debe ser fácil de producir y fácil de traducir al programa objeto.

Optimización de Código. Se trata de mejorar el código intermedio, de modo que resulte


un código de máquina más rápido de ejecutar.

Generación de Código. Esta constituye la fase final de un compilador.

Administrador de la tabla de símbolos. Se encarga de manejar los accesos a la tabla


de símbolos, en cada una de las etapas de compilación de un programa.
Manejador de errores. Es posible encontrar errores. De esta forma podrán controlarse
más eficientemente los errores encontrados en cada una de las fases de la compilación
de un programa.

También podría gustarte