lectura_2

Anuncio
Conceptos Básicos.
1.7 Editor de texto
De Wikipedia, la enciclopedia libre
No debe confundirse con procesador de texto.
Un editor de texto es un programa que permite crear y modificar archivos digitales
compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de
texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código
de caracteres que usa el editor. Hoy en día es comúnmente de 7- ó 8-bits en ASCII o UTF8, rara vez EBCDIC.
Por ejemplo, un editor ASCII de 8 bits que lee el número binario 0110 0001 (decimal 97 ó
hexadecimal 61) en el archivo lo representará en la pantalla por la figura a, que el usuario
reconoce como la letra "a" y ofrecerá al usuario las funciones necesarias para cambiar el
número binario en el archivo.
Los editores de texto son incluidos en el sistema operativo o en algún paquete de software
instalado y se usan cuando se deben crear o modificar archivos de texto como archivos de
configuración, scripts o el código fuente de algún programa.
El archivo creado por un editor de texto incluye por convención en DOS y Microsoft
Windows la extensión .txt, aunque pueda ser cambiada a cualquier otra con posterioridad.
Tanto Unix como Linux dan al usuario total libertad en la denominación de sus archivos.
Al trasladar archivos de texto de un sistema operativo a otro se debe considerar que existen
al menos dos convenciones diferentes para señalar el término de una línea: Unix y Linux
usan sólo retorno de carro en cambio Microsoft Windows usa al término de cada línea
retorno de carro y salto de línea.
El editor de texto debe ser considerado como una herramienta de trabajo del programador o
administrador de la máquina.
Algunas funciones especiales son:



Editores diseñados para un lenguaje de programación determinado, con coloreado de
sintaxis, macros, completación de palabras, etc.
Editores con regiones plegables. A veces no todo el texto es relevante para el usuario. Con
este tipo de editores ciertas regiones con texto irrelevante pueden ser plegadas,
escondidas, mostrando al usuario solo lo importante del texto.
IDE es un editor más otras herramientas de trabajo, compiladores, extractores de
diferencias entre dos textos, repositorios, etc, incluidos en un solo programa.
1.8 Compilador.
De Wikipedia, la enciclopedia libre
Un compilador es un programa informático que traduce un programa escrito en un
lenguaje de programación a otro lenguaje de programación, generando un programa
equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es
lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de
traducción se conoce como compilación.1
Es decir permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro
lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un
programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa
un ser humano, para luego compilarlo a un programa más manejable por una computadora.
Interpretes vs. Compiladores
El proceso de traducción, se puede realizar de dos maneras diferentes, a través de un
intérprete o de un compilador.
Un intérprete, al igual que un intérprete humano de un discurso o conversación, de ahí
su nombre, traduce frase a frase, realiza el proceso de traducción línea a línea,
ejecutando el programa por líneas.
Un compilador para realizar la traducción necesita leer todas las líneas del programa.
Una vez que han sido traducidas todas en su conjunto, se ejecuta. Por tanto, hasta que
no se han traducido todas las líneas del programa no se ejecuta el programa. La
diferencia con los intérpretes reside en que no traduce línea por línea, sino que las
traduce todas en conjunto, analizando las relaciones que pueden existir entre ellas.
Históricamente, con la penuria de memoria que tenían las primeras computadoras,
había muchos partidarios del uso de los intérpretes frente al uso de compiladores. El
programa fuente sin traducir y el intérprete, juntos, solían ocupar menos memoria que
los compiladores, con lo que eran más atractivos que el compilador. Pero los resultados
que produjeron no fueron muy satisfactorios, puesto que los errores de los programas
eran frecuentes y no se detectaban antes de comenzar la ejecución. Éstos se iban
detectando al ir traduciendo y ejecutando las líneas del programa, con lo que se debía
parar al proceso de compilación, arreglar el error y reiniciar, desde el principio, el
proceso de compilación hasta encontrar el siguiente error.
Más práctico es el proceso de compilación puesto que examina detalladamente todo el
programa fuente y lo convierte a objeto; si el compilador detecta errores en el programa
lo indica: se corrige el código fuente de manera apropiada y se vuelve a compilar, y así
sucesivamente, hasta que, al no tener errores, se puede ejecutar el programa objeto
obtenido.
Esta revisión global del programa fuente que realiza el compilador tiene unas ventajas
tan claras, que los intérpretes la han incorporado, y al mismo tiempo que realizan esta
revisión general, efectúan una traducción somera del lenguaje fuente a un formato
interno, no muy lejano en su estructura del lenguaje fuente, pero que facilita mucho la
ejecución posterior de cada sentencia bajo supervisión del intérprete.
A primera vista, la diversidad de compiladores puede parecer enorme. Hay muchos
lenguajes fuente y también lenguajes objeto. A pesar de esta aparente complejidad, las
tareas básicas que debe realizar cualquier compilador son siempre las mismas, sea
cual sea el lenguaje que traduce.
Tipos de compiladores
Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede haber
compiladores que se adscriban a varias categorías:





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.
Las fases de un compilador
Se puede considerar un compilador como un conversor o transformador de cadenas de
caracteres, que, en su caso más extremo, son: el programa fuente por un lado como
cadena origen, y el programa objeto como cadena resultante. Entre estos dos tipos de
cadenas, puede haber varios intermedios, según el diseño del compilador.
Un compilador se divide en varias fases, cada una de las cuales transforma al programa
fuente de una representación en otra. Se puede decir que existen dos fases centrales,
una de «Análisis» y otra de «Síntesis», con los objetivos siguientes:
— Análisis: Realiza la lectura de la cadena de caracteres que constituye el programa
fuente. Tiene dos partes bien diferenciadas, el explorador (o analizador lexicográfico)
con la misión de leer el programa fuente e identificar las palabras que están dentro del
código, y el reconocedor (o analizador sintáctico) que mira la estructura sintáctica de las
sentencias del programa fuente para comprobar su corrección.
— Síntesis: Después del proceso de análisis, comienza la obtención de la cadena de
caracteres que formará el programa objeto. Se hace en dos etapas, la generación de
código intermedio y la generación de código ejecutable que obtiene la tira de código
objeto entendible por la computadora.
El proceso, como se verá más adelante en un ejemplo concreto, conceptualmente es
sencillo: el código fuente, a través del analizador léxico, va siendo reconocido y dividido
en palabras. A partir de estas palabras el analizador sintáctico identifica la instrucción y
comprueba que se ha escrito bien. A continuación, el generador de código intermedio,
genera un código estándar y común a distintos lenguajes. Por último, este código
intermedio es traducido por el generador de código ejecutable que crea la cadena de
código objeto.
El explorador
El explorador es la primera fase de un compilador. Su principal función consiste en leer
los caracteres de entrada e identificar las palabras (el léxico) que forman las sentencias
(oraciones) del programa fuente. La salida del explorador las recibe el reconocedor
como entrada.
Como el Explorador es la parte del compilador que lee el texto fuente, también se ocupa
de: ignorar los comentarios que el programador ha incluido, los espacios en blanco,
tabuladores y caracteres de línea nueva, que no es necesario traducir al programa
objeto. También recuerda y almacena los números de las líneas del programa fuente en
donde se localizó un error, para que el programador pueda conocer en qué línea se
produjo.
El reconocedor
El Reconocedor obtiene una serie de palabras o componentes léxicos del Explorador, y
comprueba si la cadena es correcta en el lenguaje de programación empleado.
Informará de cualquier error de sintaxis de manera inteligible.
Generación de código intermedio
De las dos partes del proceso de compilación (Análisis y Síntesis), hasta el momento
sólo se ha hablado de la primera: el Análisis. Pero si el compilador sólo hiciera esta
parte, únicamente serviría para comprobar que la sentencia del lenguaje analizada es
correcta desde el punto de vista gramatical, pero no haría ninguna traducción.
Generación de código ejecutable.
En este modelo de Análisis y Síntesis de un compilador, la etapa de la Generación de
Código Intermedio es la que traduce un programa fuente a una representación
intermedia a partir de la cual se genera el código objeto..
La fase final del compilador es la generación de código ejecutable. Toma como entrada
la representación intermedia del programa fuente y produce como salida un programa
objeto equivalente.
Las exigencias tradicionalmente impuestas a un compilador son duras. El código de
salida debe ser correcto y de gran calidad, lo que significa que debe utilizar de forma
eficaz los recursos de la computadora. Además, el propio generador de código debe
ejecutarse eficientemente.
1.9 Ejecutables.
En informática, un ejecutable o archivo ejecutable, es un archivo binario cuyo contenido se
interpreta por el ordenador como un programa.
Generalmente, contiene instrucciones en código máquina de un procesador en concreto,
pero también puede contener bytecode que requiera un intérprete para ejecutarlo. Además
suele contener llamadas a funciones específicas de un sistema operativo (llamadas al
sistema).
Dependiendo del tipo de que se traten las instrucciones, hablaremos de ejecutables
portables (se pueden ejecutar en varias plataformas) y no portables (destinado a una
plataforma concreta). Por ejemplo, un ejecutable Java es portable ya que utiliza un
bytecode no asociado a un procesador en concreto.
Existen otro tipo de programas llamados scripts. No contienen código máquina sino el
código fuente, que se interpreta a la vez que se ejecuta.
Determinar si un archivo es ejecutable es sobre todo una cuestión de convención. Unos
sistemas operativos se basan en la extensión de archivo (como la terminación .exe) y otros
lo hacen leyendo los metadatos (como los bits de permiso de ejecución en Unix).
En la mayoría de los sistemas modernos, un archivo ejecutable contiene mucha información
que no es parte del programa en sí: recursos como textos e imágenes, requisitos del entorno
de ejecución, información simbólica y de depuración, u otra información que ayude al
sistema operativo a ejecutar el programa.
Las extensiones comunes de archivos para campos ejecutables en Windows incluyen .exe,
.com, .dll, .bat. Un archivo ejecutable que está vinculado dinámicamente a otro programa se
llama una librería de vínculo dinámico.
En Unix, los archivos ejecutables están marcados con una bandera de permiso especial en
los atributos del archivo
1.10 Lineas de Comandos
Interfaz de Línea de Comandos, por su acrónimo en inglés de Command Line Interface
(CLI), es un método que permite a las personas dar instrucciones a algún programa
informático por medio de una línea de texto simple.
Las CLI pueden emplearse interactivamente, escribiendo instrucciones en alguna especie de
entrada de texto, o pueden utilizarse de una forma mucho más automatizada (batch),
leyendo comandos desde un archivo de scripts.
La contraparte de CLI es la interfaz gráfica de usuario (GUI) que ofrece una estética
mejorada y una mayor simplificación, a costa de un mayor consumo de recursos
computacionales, y, en general, de una reducción de la funcionalidad alcanzable. Asimismo
aparece el problema de una mayor vulnerabilidad por complejidad.
Las CLI son usadas por muchos programadores y administradores de sistemas como
herramienta primaria de trabajo, especialmente en sistemas operativos basados en Unix; en
entornos científicos y de ingeniería, y un subconjunto más pequeño de usuarios domésticos
Algunas aplicaciones proporcionan tanto una CLI como una GUI. Un ejemplo es el
programa de CAD AutoCAD. El paquete científico/ingenieril de computación numérica.
Matlab no proporciona GUI para algunos cálculos, pero la CLI puede realizar cualquier
cálculo. El programa de modelado tridimensional Rhinoceros 3D (que se usa para diseñar
las cajas de la mayor parte de los teléfonos portátiles, así como miles de otros productos
industriales) proporciona una CLI. En algunos entornos informáticos, como la interfaz de
usuario de Smalltalk u Oberon, la mayor parte del texto que aparece en la pantalla se puede
usar para dar órdenes.
Descargar