Está en la página 1de 23

UNIVERSIDAD TECNOLOGICA DE HONDURAS

Teoría y diseño de compiladores

Tarea parcial I

ING. Ricardo J. Woolery Cintra

Ingeniería en Computación

José Danery Velásquez


201510060200

Fecha: 05 de junio del 2018 campus Tegucigalpa


Introducción

En el siguiente documento encontrara una serie de investigaciones como ensayos vida


y obras de autores muy importantes para la evolución de la programación y de la
tecnología de lenguajes de programación entre otros muy importantes también en
este informe se le dará a conocer ciertas palabras claves proporcionadas por el
catedrático para la respectiva investigación ya que desconocemos palabras muy
importantes en la vida que a diario vivimos como también conocemos palabras pero
no con su significado exacto aquí se tratara de despejar cualquier duda respecto a
cierto significado de las palabras y enriquecer el conocimiento de quienes fueron
varios autores de la traducción del habla o lenguaje normal a lenguaje de
programación, se podrá encontrar mi experiencia con distintos lenguajes de
programación y su debida compilación su funcionalidad y su derivación sin más
preámbulo pasemos a este interesante documento.
Palabras clave
COMPILADOR: Un compilador es un traductor que trasforma textos fuentes de lenguaje de
alto nivel a lenguajes de bajo nivel. Un compilador típicamente opera en fases, cada una lleva a
cabo una tarea sobre el programa fuente.

ESTRUCTURA DE UN COMPILADOR:

Un compilador identifica los significados de las diferentes construcciones presentes en la


definición del propio lenguaje.

En un compilador pueden distinguirse dos fases principales: una fase de análisis, en la que la


estructura y el significado del código fuente se analiza; y otra fase de síntesis, en la que se
genera el programa objeto.

Otra forma alternativa de estructurar las fases de las que se compone un compilador
es distinguiendo entre: front-end, parte en la que se analiza el código, se comprueba
su validez, se genera el árbol de derivación y se rellena la tabla de símbolos; y  backend,
donde se genera el código máquina.

COMPILACIÓN: Compilación se refiere a la acción de compilar, es el efecto que significa unir


o juntar algo que se hallaba por separado. Se utiliza el término compilación para referirse a la
información recogida sobre un mismo tema con la finalidad de sintetizarla, analizarla y
compararla.

En informática, la compilación la realiza un compilador virtual que efectúa la traducción de un


programa escrito en lenguaje de programación en un código fuente a otro lenguaje de
programación de código intermedio para que posteriormente pueda ejecutarse.
TIPOS DE COMPILACIÓN: Compiladores cruzados: generan código para un sistema distinto
del que están funcionando.

Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero


manteniendo la funcionalidad del programa original.

Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del
código fuente.

Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder
producir el código máquina.

Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código
según se necesitan.

Compiladores incrementales: Generan un código objeto, instrucción por instrucción cuando el


usuario teclea cada orden individual.

Compilador con montador: Compila distintos módulos de forma independiente y después es


capaz de aplazarlos.

Auto compilador: Compilador que está escrito en el mismo lenguaje que va a compilar.

Meta compilador: Es programa que recibe como entrada las especificaciones del lenguaje para
el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje.

Descompilador: Es un programa que acepta como entrada código máquina y la traduce a un


lenguaje de alto nivel realizando el proceso inverso a la compilación.

Pauta de creación de un compilador: En las primeras épocas de la informática, el software de


los compiladores era considerado como uno de los más complejos existentes.

Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o


en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas
versiones del compilador (u otros compiladores distintos) en el lenguaje que compila ese
compilador.

LENGUAJE: El concepto de lenguaje puede ser entendido como un recurso que hace posible
la comunicación. En el caso de los seres humanos, esta herramienta se encuentra
extremadamente desarrollada y es mucho más avanzada que en otras especies animales, ya
que se trata de un proceso de raíces fisiológicas y psíquicas. El lenguaje, como sabrán muchos
de ustedes, le brinda la posibilidad al hombre de seleccionar, citar, coordinar y combinar
conceptos de diversa complejidad.
TIPOS DE LENGUAJES:
Lenguaje natural

El lenguaje natural es el tipo de lenguaje que utilizamos en nuestro día a día, de forma
espontánea y sin prepararlo previamente. Es decir, es el modo en el que nos expresamos de
forma natural.

Lenguaje artificial

En el lado opuesto tenemos el considerado como lenguaje artificial, que se diferencia del
natural por el hecho de que este lenguaje está preparado previamente, es decir, no sale de
forma natural, sino que requiere una preparación y organización previas.

Lenguaje literario

El lenguaje literario es el tipo de lenguaje que es utilizado por los escritores, y dependiendo de
cada caso puede presentar múltiples variaciones en función del público objetivo, haciendo uso
en muchos casos de tecnicismos orientados a los conocedores de una determinada materia.

Lenguaje científico y técnico

Por otra parte tenemos el lenguaje científico que se basa en aquel que es utilizado dentro de
un núcleo cerrado de profesionales, consiguiendo de esta forma mejorar la comunicación
siempre orientada al conocimiento del campo en cuestión.

Dentro de este tipo de lenguaje podemos encontrar algunas variedades como el lenguaje
matemático y el lenguaje de programación entre otros diversos.

Lenguaje matemático

El lenguaje matemático es un tipo de lenguaje artificial, literario, científico y técnico, y tiene


como objetivo la comunicación matemática a partir de conceptos definidos previamente.

Lenguaje de programación

Se trata de un tipo de lenguaje artificial, literario, científico y técnico que es utilizado con el
objetivo de establecer una comunicación con ordenadores y otros sistemas informáticos.

Lenguaje formal

Por otra parte tenemos el lenguaje formal que es el utilizado para  comunicarse dentro de
grupos en los que prima la formalidad en la comunicación, ya sean grupos académicos o
grupos profesionales.
FORMAS DE REPRESENTAR UN LENGUAJE : Los algoritmos pueden ser expresados de
muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes
de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y
extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje
natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no
obstante, se mantienen independientes de un lenguaje de programación específico.

La descripción de un algoritmo usualmente se hace en tres niveles:

Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se


explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.

Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran
la solución.

Implementación. Se muestra el algoritmo expresado en un lenguaje de programación


específico o algún objeto capaz de llevar a cabo instrucciones.

También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis
de complejidad o ambos.

Lenguaje natural

Son aquellas lenguas que han sido generadas espontáneamente en un grupo de hablantes con
propósito de comunicarse, a diferencia de otras lenguas, como puedan ser una lengua
construida, los lenguajes de programación o los lenguajes formales usados en el estudio de la
lógica formal, especialmente la lógica matemática.

Los algoritmos escritos en este lenguaje se caracterizan por seguir un proceso de ejecución
común y lógico, describiendo textualmente paso a paso cada una de las actividades a realizar
para resolver un problema determinado.

Los inconvenientes de escribir algoritmos en este lenguaje son: la ambigüedad, la no


universalidad y la amplitud del mismo lo cual genera errores y no puede ser interpretado
correctamente por el computador.

Pseudocódigo

Es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural
con algunas convenciones sintácticas propias de lenguajes de programación, como
asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado
para describir algoritmos en libros y publicaciones científicas, y como producto intermedio
durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una
ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren
menos espacio para representar instrucciones complejas.

El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y


por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación.
Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en
la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general,
es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y
es a la vez suficientemente estructurado para que su implementación se pueda hacer
directamente a partir de él.

Diagramas de Flujo

Son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la
secuencia de instrucciones y están regidos por ISO.

Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan
mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como
introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas
ajenas a la computación.

Diagramas estructurados (Nassi-Schneiderman)

El diagrama estructurado N-S también conocido como diagrama de chapin es como un


diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las
acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se
pueden escribir diferentes acciones en una caja.

Los diagramas estructurados, son una técnica que permite formular algoritmos mediante una
representación geométrica y de asignación de espacios de un bloque específico.

GRAMÁTICA: Se denomina gramática a la ciencia que tiene como objeto de estudio a los


componentes de una lengua y sus combinaciones. El concepto halla su origen en el término en
latín grammatĭca y hace referencia, por otra parte, al arte de dominar una lengua de modo
correcto, tanto desde el habla como con la escritura.

La gramática, por lo tanto, se puede definir como el grupo de principios, reglas y preceptos que
rigen el empleo de un lenguaje en particular (al respecto, hay que decir que cada lenguaje
posee su propia gramática). Como ciencia, está contemplada como parte de la lingüística.

SINTAXIS: Se trata de la rama de la gramática que ofrece pautas creadas para saber cómo unir
y relacionar palabras a fin de elaborar oraciones y expresar conceptos de modo coherente. En
la informática, la sintaxis se entiende como el grupo de normas que marcan las secuencias
correctas de los elementos propios de un lenguaje de programación.

Como una sub-disciplina enmarcada en el campo de la lingüística, la sintaxis hace foco en el


estudio de los preceptos que rigen la combinación de constituyentes y el surgimiento de
unidades superiores a éstos, como sucede con los sintagmas y las oraciones.

SEMÁNTICA: Se denomina como semántica a la ciencia lingüística que estudia el significado


de las palabras y expresiones, es decir, lo que las palabras quieren decir cuando hablamos o
escribimos. Término acuñado por Michel Bréal en 1833.

La finalidad de la semántica es descomponer el significado en unidades más pequeñas,


llamadas semas o rasgos semánticos, estos permiten segmentar el significado de las palabras,
y diferenciar palabras de significado parecido y palabras de significado opuesto.
La semántica lógica, utilizada en las ciencias, es el estudio de la relación entre un signo y su
realidad. Por otro lado, la semántica en ciencias cognitiva estudia la relación que la mente de
una persona atribuye a los signos, y analiza el mecanismo psíquica entre el hablante y oyente.

Existen palabras adoptadas de otras lenguas, es lo que se denomina calco semántico. Por otro
lado, la ciencia semiótica se encarga de estudiar los signos, sus relaciones y significado.

En informática, la semántica se encarga de estudiar desde un punto de vista matemática, el


significado de los programas o funciones.

Etimológicamente, el término semántica proviene del griego “semantikos”, que significa “algo


que tiene un significado relevante o significativo”.

APORTE DE PALABRAS CLAVE


El proceso de compilación.

Análisis semántico.

Generación de código intermedio.

Optimización de código intermedio.

Generación y optimización de código objeto.

Herramientas para generar compiladores.

Kits para la construcción de compiladores.

Partes de un compilador.

Tipos de compiladores.

Importancia de los compiladores


Ensayo de tipos de compilación de lenguajes de programación
El lenguaje Java
Como cualquier lenguaje de programación, el lenguaje Java tiene su propia estructura, reglas
de sintaxis y paradigma de programación. El paradigma de programación del lenguaje Java se
basa en el concepto de programación orientada a objetos (OOP), que las funciones del
lenguaje soportan.

El lenguaje Java es un derivado del lenguaje C, por lo que sus reglas de sintaxis se parecen
mucho a C: por ejemplo, los bloques de códigos se modularizan en métodos y se delimitan con
llaves ({ y }) y las variables se declaran antes de que se usen.

Estructuralmente, el lenguaje Java comienza con paquetes. Un paquete es el mecanismo de


espacio de nombres del lenguaje Java. Dentro de los paquetes se encuentran las clases y
dentro de las clases se encuentran métodos, variables, constantes, entre otros. En este
tutorial, aprenderá acerca de las partes del lenguaje Java.

Cuando usted programa para la plataforma Java, escribe el código de origen en archivos .java y
luego los compila. El compilador verifica su código con las reglas de sintaxis del lenguaje, luego
escribe los códigos byte en archivos .class. Los códigos byte son instrucciones estándar
destinadas a ejecutarse en una Java Virtual Machine (JVM). Al agregar este nivel de
abstracción, el compilador Java difiere de los otros compiladores de lenguaje, que escriben
instrucciones apropiadas para el chipset de la CPU en el que el programa se ejecutará.

Al momento de la ejecución, la JVM lee e interpreta archivos .class y ejecuta las instrucciones
del programa en la plataforma de hardware nativo para la que se escribió la JVM. La JVM
interpreta los códigos byte del mismo modo en que una CPU interpretaría las instrucciones del
lenguaje del conjunto. La diferencia es que la JVM es un software escrito específicamente para
una plataforma particular. La JVM es el corazón del principio "escrito una vez, ejecutado en
cualquier lugar" del lenguaje Java. Su código se puede ejecutar en cualquier chipset para el
cual una implementación apropiada de la JVM está disponible. Las JVM están disponibles para
plataformas principales como Linux y Windows y se han implementado subconjuntos del
lenguaje Java en las JVM para teléfonos móviles y aficionados de chips.

El lenguaje C y Python
En términos de paradigmas de programación, C y Python pueden ser clasificados como
lenguajes procedurales, y como tales comparten muchos de sus componentes fundamentales:
expresiones, variables, sentencias, condicionales, ciclos, funciones, etcétera.

Sintácticamente, ambos lenguajes se ven diferentes a simple vista, pero veremos que muchas
de las diferencias son sólo cosméticas:

es_primo = True

for d in range(2, n):

if n % d == 0:

es_primo = False
break

es_primo = 1;

for (d = 2; d < n; d++) {

if (n % d == 0) {

es_primo = 0;

break;

Más allá de las diferencias visibles en el código, ambos lenguajes son fundamentalmente
diferentes en la manera que usan los recursos del computador. Estas diferencias no son
apreciables con sólo mirar el código, sino que deben ser comprendidas desde el principio. La
imagen mental que uno se forma sobre el programa que está escribiendo es mucho más
importante al programar en C que en Python.

Cuando programamos en Python, en cierto modo estamos haciendo trampa. El código Python
no es ejecutado físicamente por el computador, sino por un intérprete, que es el programa
que ejecuta los programas. El lenguaje C permite hacer «menos trampa», ya que sí es un
medio para dar instrucciones al procesador.

El procesador es el componente del computador que ejecuta las instrucciones de un programa.

Las instrucciones que el procesador recibe no están en un lenguaje de programación como


Python o C, sino en un lenguaje de máquina, que es mucho más básico. Cada procesador viene
diseñado «de fábrica» para entender su propio lenguaje de máquina, que se compone
de instrucciones muy básicas, como leer un dato, aplicar una operación sobre un par de datos
o saltar a otra parte de la memoria para leer una nueva instrucción.

C y Python son lenguajes tales, pero difieren en la forma en que son ejecutados. Python es un
lenguaje pensado para ser interpretado, mientras que C debe ser compilado.

Un programa llamado compilador recibe como entrada el código C y genera como salida


código binario que el procesador es capaz de entender. El binario puede ser un programa
ejecutable, o una biblioteca con funciones que pueden ser llamadas desde un programa.

A pesar de que el compilador actúa de intermediario entre nuestro código y el procesador, el


lenguaje C sigue siendo de más bajo nivel que Python. El programador tiene la libertad (y la
responsabilidad) de lidiar con aspectos de la ejecución que no son accesibles desde Python.
Principalmente, la administración de la memoria que usa el programa.
Lenguaje C♯

En la actualidad existen los siguientes compiladores para el lenguaje C♯:

Microsoft.NET framework SDK incluye un compilador de C♯, pero no un IDE.

Microsoft Visual Studio, IDE por excelencia de este lenguaje, versión 2002, 2003, 2005, 2008 y
2010(beta).

#develop, es un IDE libre para C♯ bajo licencia LGPL, muy similar a Microsoft Visual C#.

Mono, es una implementación GPL de todo el entorno .NET desarrollado por Novell. Como


parte de esta implementación se incluye un compilador de C♯.

Delphi 2006, de Borland Software Corporation.

dotGNU Portable.NET, de la Free Software Foundation.

Lenguaje C++
C++ es un lenguaje imperativo orientado a objetos derivado del C. En realidad un súper
conjunto de C, que nació para añadirle cualidades y características de las que carecía. El
resultado es que como su ancestro, sigue muy ligado al hardware subyacente, manteniendo
una considerable potencia para programación a bajo nivel, pero se la han añadido elementos
que le permiten también un estilo de programación con alto nivel de abstracción.
Estrictamente hablando, C no es un subconjunto de C++; de hecho es posible escribir código C
que es ilegal en C++. Pero a efectos prácticos, dado el esfuerzo de compatibilidad desplegado
en su diseño, puede considerarse que C++ es una extensión del C clásico. La definición "oficial"
del lenguaje nos dice que C++ es un lenguaje de propósito general basado en el C, al que se
han añadido nuevos tipos de datos, clases, plantillas, mecanismo de excepciones, sistema de
espacios de nombres, funciones inline, sobrecarga de operadores, referencias, operadores
para manejo de memoria persistente, y algunas utilidades adicionales de librería (en realidad
la librería Estándar C es un subconjunto de la librería C++) 

El los lenguajes compilados el proceso de traducción sólo se hace una vez. El programa
compilador toma como entrada el código fuente del programa, y da como salida un fichero
que puede ser ejecutado por el ordenador directamente. Una vez compilado, el programa
ejecutable es autónomo, y ya no es necesario disponer del programa original ni del compilador
para ejecutarlo. Cada opción tiene sus ventajas e inconvenientes, y algunas características que
son consideradas una ventaja, pueden ser un inconveniente en ciertas circunstancias, y
viceversa.
 Los lenguajes interpretados son fácilmente modificables, ya que necesitamos tener el
código fuente disponible en el ordenador. En los compilados, estos ficheros no son
necesarios, una vez compilados.
 Los lenguajes interpretados necesitan un programa externo, llamado intérprete o a
veces máquina virtual, o framework. Este programa actúa como intermediario entre la
fuente y el sistema operativo. En los compilados ese papel lo desempeña el
compilador, pero al contrario que con el intérprete, una vez ha hecho su trabajo, no es
necesario que esté presente para ejecutar el programa.
 Estas dos características, lógicamente, hacen que los programas compilados requieran
menos espacio de memoria que los interpretados (si contamos el espacio usado por el
intérprete), y en general, los compilados son más rápidos, ya que sólo se compilan una
vez, y el tiempo dedicado a esa tarea no se suma al de ejecución.
Autoevaluación

En el siguiente punto daré a conocer la puntuación respecto al trabajo elaborado y la calidad


de información que el internet proporciona dando como puntaje máximo 5 si es de total
satisfacción:

Trabajo Evaluado 4

Información de internet 5

Presentación 5

Originalidad 5

Desempeño 5

Trabajo completo 5
Segunda tarea
CODIFICACIÓN: Codificación es el proceso de conversión en símbolos de una determinada
información con el fin de ser comunicada, y a efectos de ser entendida por el receptor,
aplicando las reglas de un código predeterminado. Es decir que en la codificación el emisor
convierte sus ideas en signos que sean fácilmente comprendidos por quienes reciben la
información. En el proceso comunicacional, el emisor de un mensaje es la persona que
comunica la información a otra persona o receptor, que es quien recibe dicha información.

Los signos lingüísticos o fonéticos transmitidos en el mensaje (codificación), son asociados por
parte del receptor a la idea que se quiso transmitir, interpretando los signos empleados
(decodificación) con representaciones mentales vinculadas a la idea que se transmite (hola,
por ejemplo, es decodificado como saludo).

En informática se emplea la codificación para enviar y procesar datos combinando códigos en


operaciones de distintos tipos de complejidad, más aún en aquellas que requieren cierto grado
de confidencialidad y seguridad, que implican la creación de mensajes que sólo pueden ser
comprendidos por determinados ordenadores o usuarios.

FORMA BACKUS-NAHUR: El formato Backus-Naur (BNF) es un sistema notacional para


especificar tipos de datos o categorías sintácticas, también específica la sintaxis de los
lenguajes de programación mediante reglas de producción o de re-escritura.

Una manera alternativa para establecer la producción de una gramática es usar esta forma, los
símbolos no terminales suele comenzar con "<" y terminar con ">". La producción S->T se
escribe S::=T. 

Las producciones de la forma

S::=T1, S::=T2, ..., S ::=Tn

Se pueden combinar como

S::=T1|T2|...|Tn.

La barra "|" se lee como "o".

DIAGRAMA SINTÁCTICO: Los diagramas sintácticos, de sintaxis o diagramas del ferrocarril


son una forma de representar una gramática libre de contexto. Representan una alternativa
gráfica para la Forma de Backus-Naur (BNF, por sus siglas en inglés) o la Forma Extendida de
Backus-Naur (EBNF, por sus siglas en inglés). Los primeros libros usando diagramas de sintaxis
incluyen el "Manual del usuario de Pascal", escrito por Niklaus Wirth (los diagramas empiezan
en la página 47) y el manual para CANDE de Burroughs. En el campo de la compilación,
representaciones textuales como BNF o sus variantes son generalmente preferidas. BNF es
bien entendido por los autores de compiladores y compiladores, pero no es bien entendido
por la mayoría de los usuarios de las lenguas. Los diagramas de ferrocarril son más
comprensibles para la mayoría de la gente. Alguna parte de la popularidad del formato de
intercambio de datos JSON se debe a su representación en los diagramas de ferrocarril.
METASÍMBOLOS:
METALENGUAJE: En lógica y filosofía del lenguaje, un metalenguaje es un lenguaje que se
usa para hablar acerca de otro lenguaje. Al lenguaje acerca del cual se está hablando se lo
llama el lenguaje objeto. El metalenguaje puede ser idéntico al lenguaje objeto, por ejemplo
cuando se habla acerca del español usando el español mismo. Un metalenguaje a la vez puede
ser el lenguaje objeto de otro metalenguaje de orden superior, y así sucesivamente. Distintos
metalenguajes pueden hablar acerca de diferentes aspectos de un mismo lenguaje objeto. Los
modelos formales de sintaxis para la descripción de la gramática, como por ejemplo, la
gramática generativa, son tipos de metalenguaje. En un sentido más general, puede referirse a
cualquier terminología o lenguaje usado para hablar con referencia al mismo lenguaje. Por
ejemplo, un texto sobre gramática o una discusión acerca del uso del lenguaje.

TIPOS DE METASÍMBOLOS:
 |  Metasímbolo de alternativa. Indica que puede elegirse uno y sólo uno de los elementos
separados por este metasímbolo.

  {}   Metasímbolos de repetición. Indican que los elementos incluidos dentro de ellos se
pueden repetir cero o más veces.

 []   Metasímbolos de opción. Indican que los elementos incluidos dentro de ellos pueden ser
utilizados o no.

  ()   Metasímbolos de agrupación. Agrupan los elementos incluidos en su interior.

Reglas:
Las reglas son normativas o preceptos que deben respetarse. Lo habitual es que las reglas
surjan por un acuerdo o convenio y que, una vez instauradas, sean de cumplimiento
obligatorio: “La sanción es correcta ya que el jugador tocó el balón con la mano y, por lo tanto,
violó una regla esencial de este juego”, “¿Cómo se te ocurre venir vestido de esta forma? ¿No
has leído las reglas de vestimenta de esta empresa?”, “La regla del concurso indica que está
prohibido presentar obras manuscritas”.

Puede entenderse las reglas como indicaciones que señalan la manera en que se debe


desarrollar algo.
Ferdinand de Saussure
Nació el 26 de noviembre de 1857 en Ginebra.

Cursó estudios de ciencias en la universidad de Ginebra antes de retomar sus estudios


lingüísticos en Leipzig en el año 1876.

Su obra más importante fue la Mémoire (sobre el sistema vocálico del protoindoeuropeo),


impresa en 1879.

Trabajó en filología y dos años después de haber publicado su tesis o Mémoire fue profesor de
Sánscrito y de Gramática comparada en la Universidad de Ginebra.

Reconocido por el Cours de Linguistique Générale (Curso de Lingüística general, 1916)


redactado a partir de sus notas preparatorias para las clases.

La verdadera revolución en la lingüística teórica la produjo Ferdinand de Saussure con la


publicación, que hicieron sus discípulos Bally, Frei y Sechehaye, de su obra como reacción a
los neo gramáticos.

Expone que la facultad de hablar, el lenguaje, se estructura en un completo sistema de signos,


la lengua, que se hace presente en cada una de las realizaciones de los hablantes, el habla.

El sistema de signos que es la lengua debe estudiarse dentro de una ciencia general,
la semiología, que abarca toda la teoría de los signos. Diseña el signo lingüístico como la
unidad de la lengua que tiene dos caras, el significante, esto es, los sonidos y las formas de las
palabras, y el significado, lo que esos sonidos y palabras significan dentro y sólo dentro del
sistema que es la lengua. Con él se fundamenta la fonología, que otros desarrollarán después.

Ferdinand de Saussure falleció en Ginebra, Suiza, el 22 de febrero de 1913.

Considerado el padre del desarrollo teórico de la lingüística moderna (estructuralismo,


semiología, etc.), cuya obra de referencia, Curso de Lingüística General, fue recogida y
publicada después de su muerte. Sus aportaciones básicas, que suponen una ruptura con las
corrientes historicistas precedentes, mantienen su vigencia un siglo después. Las claves de
Saussure contribuyen al mejor conocimiento de las estructuras que construye el ser humano
para comunicarse.
Saussure establece una diferencia entre ‘lenguaje’, ‘lengua’ y ‘habla’ y fija como objetivo
central de estudio la lengua desde el punto de vista de su estructura, de su organización
interna. La lengua se compone de unidades básicas relacionadas entre sí. La unidad o signo
lingüístico está formado de dos elementos –el concepto y la huella mental del concepto, su
‘imagen acústica’-, que se unen en una asociación psíquica en el cerebro del individuo. Esas
dos facetas constituyen el ‘significado’ y el ‘significante’, la idea y el sonido (el sonido es el
signo de una idea). Entre significado y significante no existe una relación natural, sino arbitraria
–la ‘arbitrariedad del signo’-, carente de una motivación. Esta arbitrariedad actúa, sin
embargo, como una protección de estabilidad, al tiempo que fija y determina el significante,
pero no inmoviliza definitivamente la relación significado-significante.
La lengua tiende a permanecer, a ser estable, a defenderse de la innovación. Es producto de la
sociedad –la naturaleza social del lenguaje-, pero se adquiere como una herencia, donde las
vinculaciones con el pasado son más fuertes que la innovación o la ‘libertad de expresión’.
Pero eso no significa que no se produzcan desplazamientos, mutaciones, que afectan a la
relación significado-significante. 
El estudio de Saussure tiene un carácter sincrónico, contrapuesto a las líneas previas de la
lingüística, de carácter diacrónico (histórico). Desde una concepción positivista, el análisis
sincrónico se contrapone a la visión dialéctica de la historia del pensamiento hegeliano y del
marxismo.
En los últimos años de su vida creo el término ‘semiología’ como idea de una nueva ciencia
destinada al estudio de la naturaleza de los signos y la relación de estos con la realidad social. 
Noam Chomsky
Nació el 7 de diciembre de 1928 en Philadelphia.

Hijo mayor de William Chomsky, un distinguido erudito judío Ashkenazi nacido en Ucrania que
escapó a los Estados Unidos en 1913. Su madre fue la bielorrusa Elsie Simonofsky.

Su hermano menor, David Eli Chomsky, nació cinco años después que él. Fueron criados en un
ambiente judío, aprendieron hebreo y a debatir las teorías políticas de sionismo; ya que su
familia estaba influenciada por sionistas de izquierda como Ahad Haam.

Cursó estudios en la universidad de Pennsylvania, donde recibió las influencias de Zellig Harris.
Doctorado en 1951, pasó cuatro años en Harvard (1951-55), mas adelante se trasladó a la
universidad de Pennsylvania (1955).

Comenzó una larga carrera en la enseñanza en el Instituto de Tecnología de Massachusetts.

Reconocido como uno de los fundadores principales de la gramática transformacional-


generativa, un sistema del análisis lingüístico que desafía a lingüística tradicional y relacionada
con la filosofía, la lógica, y la psicolingüística. El libro Estructuras sintácticas (1957) fue
considerado como una revolución en la disciplina de la lingüística.

La teoría de Chomsky sugiere que cada elocución humana tiene dos estructuras: estructura
superficial, el combinar superficial de las palabras, y de la "estructura profunda" que son reglas
y mecanismos universales. En términos más prácticos, la teoría discute que los medios para
adquirir un lenguaje sean naturales en todos los seres humanos y están accionados tan pronto
como un niño comienza a aprender los fundamentos de un lenguaje.

Sus publicaciones lingüísticas más importantes son: Estructuras Sintácticas (1957), Aspectos de


la teoría de la sintaxis (1965), The Sound Pattern of English (1968; con Morris
Halle), Pensamientos y Lenguaje (1972), The Logical Structure of Linguistic Theory y Reflections
on Language (ambas del año 1975). Language and Responsibility (1979) relaciona lengua y
política. Entre los escritos políticos de Chomsky están: El poder americano y sus nuevos
mandarines (1969).

Activista político, se caracterizó por sus críticas al capitalismo y a la política exterior de los
Estados Unidos. En 1967, hizo su incursión en el activismo político con la oposición a la
participación de Estados Unidos en la guerra de Vietnam y obteniendo reconocimiento gracias
a su ensayo The Responsibility of Intellectuals. Asociado con la New Left, fue arrestado en
varias ocasiones por su activismo contra la guerra. Chomsky desarrolló un modelo de
propaganda crítica en los medios junto a Edward S. Herman. Tras retirase de la enseñanza,
continuó con su activismo dando su apoyo a Occupy y otros movimientos.
Estuvo casado con Carol Schatz Doris desde 1949 hasta su muerte en 2008. Tuvieron tres hijos:
Aviva, Diane, y Harry. En 2014, se casó con Valeria Wasserman.

Obras seleccionadas:

Lingüística

1957 — Syntactic Structures

1965 — Aspects of the Theory of Syntax

1965 — Cartesian Linguistics

1968 — Language and Mind

1970 — Current Issues in Linguistic Theory

1972 — Studies in Semantics in Generative Grammar

1975 — Reflections on Language

1977 — Essays on Form and Interpretation

1980 — Rules and Representations

1981 — Lectures on Government and Binding: The Pisa Lectures

1984 — Modular Approaches to the Study of Mind

1986 — Barriers

1986 - Knowledge of Language: Its Nature, Origin, and Use

1995 — The Minimalist Program

2012 — The Science of Language


Política

1970 - El Gobierno en el Futuro


1984 - La segunda guerra fría
1988 - La quinta libertad
1987 - On Power and Ideology
1990 - Los guardianes de la libertad
1992 - El miedo a la democracia
1997 - La Aldea Global
1997 - Lucha de clases
1997 - El nuevo Orden mundial (y el viejo)
2000 - Actos de agresión
2000 - El beneficio es lo que cuenta
2001 - Perspectivas sobre el poder
2001 - La (Des)Educación
2002 - La Propaganda y la opinión pública
2003 - El triángulo fatal
2003 - La cultura del terrorismo
2004 - Ilusiones de Oriente Medio
2004 - Piratas y emperadores
2007 - Estados fallidos. El abuso de poder y el ataque a la democracia
2008 - Intervenciones
2008 - Sobre el anarquismo
2008 - Líbano, desde dentro
2010 - Esperanzas y realidades
2012 - Ilusionistas
2013 - On Anarchism
2015 - Because We Say So
2016 - Who Rules the World?
2017 - Requiem for the American Dream: The 10 Principles of Concentration of Wealth &
Power 
DIFERENCIAS Y SIMILITUDES DE LAS TEORÍAS LINGUISTICAS DE SAUSSURE Y
CHOMSKY
Es demasiado largo de explicar. Son dos mundos completamente distintos. 

Diría que la principal diferencia se encuentra en que para De Saussure, la lengua es una
realidad externa y objetiva, que tiene su expresión en el signo lingüístico (entidad biplánica de
significado - significante), esta es su unidad de análisis. 

En cambio a Noam Chomsky le interesa el lenguaje en su realidad intra-mental; para él, el


lenguaje está genéticamente determinado, por lo tanto solo le interesa el lenguaje en tanto le
posibilita determinar los principios (reglas) que forman parte de lo que él llama Gramática
Universal (una gramática, conjunto de principios y parámetros, que le permiten a la especie
humana generar lenguaje y una lengua determinada)  

Creo, que no he sido clara. Pero como dije es muy largo y difícil de explicar. Lo mejor que
puedes hacer es leer para Ferdinand de Saussure: Curso de lingüística General. 

Y para Noam Chomsky: Lingüística Cartesiana. 

Noam Chomsky, con posterioridad a Saussure, al analizar el lenguaje habla de dos conceptos
nuevos, competence (competencia) y performance (actuación). Chomsky dice que no entiende
qué es la langue saussureana. Chomsky para superar las limitaciones que él encuentra en la
teoría estructuralista de Saussure, crea una nueva teoría, fundamentada en que la lengua-
lenguaje es un proceso de la mente del hablante, donde éste tiene una capacidad innata
(genética) para adquirir y usar una lengua, la competencia. Es un proceso que es inconsciente.
La competencia le da al ser humano la capacidad virtual de producir y/o comprender un
número indefinido de frases de una lengua.

Pero esta capacidad, esta creatividad, energía, no consiste en saber elaborar enunciados


bellos, sino gramaticales y aceptables, que cumplan una serie de condiciones.

La actuación (performance) para Chomsky es el uso real por parte del hablante de la lengua en
situaciones concretas. Es el acto particular de producción o interpretación de un enunciado, en
función de la competencia. Es la manifestación del saber lingüístico en los actos del hablar. En
definitiva, meramente empírica.

Así como en Saussure la lengua es lo esencial frente al habla, en Chomsky la competencia


prevalece sobre la actuación.

En el primero, la lengua es un concepto “social”, es del colectivo, en el segundo, en cambio, la


competencia está en la mente de cada individuo, es individual. Y si bien en Saussure, el sistema
de la lengua es estático, no cambia; para Chomsky, la competencia es un concepto dinámico,
creativo. Ambos conceptos, lengua y competencia son para ellos abstractos.

Respecto al habla y a la actuación, ambos teóricos los consideran actos del individuo, donde se
concreta el saber lingüístico en un momento determinado. Coinciden ambos en no considerar
excesivamente relevantes ambos conceptos.
Autoevaluación

En el siguiente punto daré a conocer la puntuación respecto al trabajo elaborado y la calidad


de información que el internet proporciona dando como puntaje máximo 5 si es de total
satisfacción:

Trabajo Evaluado 4

Información de internet 5

Presentación 5

Originalidad 5

Desempeño 5

Trabajo completo 4
Conclusión

En conclusión como opinión personal es muy importante darse cuenta de que el


conocimiento que se adquiere en cada investigación es muy importante pero más que
todo es importante es seguir y tomarlo como algo de enriquecimiento personal porque
siempre fuimos cuestionados porque preguntamos muchas cosas de pequeños y ahora
porque no lo hacemos y parte de esta investigación me ayuda a comprender ciertas
cosas que al inicio ni idea tenia y quienes fueron los responsables de esto muy buenos
temas y muy buena investigación.