Enero 22, 2018, 02:55:11 pm

Autor Tema: Información sobre los programas para programar  (Leído 12195 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado seth

  • El mas real
  • G#
  • **
  • Mensajes: 7889
  • Sexo: Masculino
    • Ver Perfil
Información sobre los programas para programar
« en: Mayo 26, 2008, 12:21:10 pm »
Compilador

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 código máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación.

Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje 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.
Diagrama a bloques de la operación de un buen compilador.
Diagrama a bloques de la operación de un buen compilador.

También en el siglo XIX el matemático e inventor británico Charles Babbage elaboró los principios de la computadora digital moderna. Inventó una serie de máquinas, como la máquina diferencial, diseñadas para solucionar problemas matemáticos complejos. Muchos historiadores consideran a Babbage y a su socia, la matemática británica Augusta Ada Byron (1815-1852), hija del poeta inglés Lord Byron, como a los verdaderos inventores de la computadora digital moderna. La tecnología de aquella época no era capaz de trasladar a la práctica sus acertados conceptos; pero una de sus invenciones, la máquina analítica, ya tenía muchas de las características de un ordenador moderno. Incluía una corriente, o flujo de entrada en forma de paquete de tarjetas perforadas, una memoria para guardar los datos, un procesador para las operaciones matemáticas y una impresora para hacer permanente el registro.



Partes de un compilador

Normalmente los compiladores están divididos en dos partes:

    * Front End: es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar.
    * Back End: es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por el Front End.

Esta división permite que el mismo Back End se utilice para generar el código máquina de varios lenguajes de programación distintos y que el mismo Front End que sirve para analizar el código fuente de un lenguaje de programación concreto sirva para generar código máquina en varias plataformas distintas.

El código que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker)



Historia


En 1946 se desarrolló el primer ordenador digital. En un principio, estas máquinas ejecutaban instrucciones consistentes en códigos numéricos que señalaban a los circuitos de la máquina los estados correspondientes a cada operación, lo que se denominó lenguaje máquina.

Pronto los primeros usuarios de estos ordenadores descubrieron la ventaja de escribir sus programas mediante claves más fáciles de recordar que esos códigos; al final, todas esas claves juntas se traducían manualmente a lenguaje máquina. Estas claves constituyen los llamados lenguajes ensambladores.

A pesar de todo, el lenguaje ensamblador seguía siendo el de una máquina, pero más fácil de manejar. Los trabajos de investigación se orientaron hacia la creación de un lenguaje que expresara las distintas acciones a realizar de una manera lo más sencilla posible para una persona. El primer compilador fue escrito por Grace Hopper, en 1952 para el lenguaje de programación A-0, En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje algebraico. En 1954 se empezó a desarrollar un lenguaje que permitía escribir fórmulas matemáticas de manera traducible por un ordenador; le llamaron FORTRAN (FORmulae TRANslator). Fue el primer lenguaje de alto nivel y se introdujo en 1957 para el uso de la computadora IBM modelo 704.

Surgió así por primera vez el concepto de un traductor como un programa que traducía un lenguaje a otro lenguaje. En el caso particular de que el lenguaje a traducir es un lenguaje de alto nivel y el lenguaje traducido de bajo nivel, se emplea el término compilador.

La tarea de realizar un compilador no fue fácil. El primer compilador de FORTRAN tardó 18 años-persona en realizarse y era muy sencillo. Este desarrollo de FORTRAN estaba muy influenciado por la máquina objeto en la que iba a ser implementado. Como un ejemplo de ello tenemos el hecho de que los espacios en blanco fuesen ignorados, debido a que el periférico que se utilizaba como entrada de programas (una lectora de tarjetas perforadas) no contaba correctamente los espacios en blanco.

El primer compilador autocontenido, es decir, capaz de compilar su propio código fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962. Desde 1970 se ha convertido en una práctica comun escribir el compilador en en mismo lenguaje que este compila, aunque Pascal y C han sido alternativas muy usadas.

Crear un compilador autocontenido genera un problema llamado bootstrapping, es decir el primer compilador creado para un lenguaje tiene que o bien ser compilado por un compilador escrito en otro lenguaje o bien compilado al ejecutar el compilador en un intérprete.



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.

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.

Actualmente existen herramientas que facilitan la tarea de escribir compiladores ó intérpretes informáticos. Estas herramientas permiten generar el esqueleto del analizador sintáctico a partir de una definición formal del lenguaje de partida, especificada normalmente mediante una gramática formal y barata, dejando únicamente al programador del compilador la tarea de programar las acciones semánticas asociadas.



Fuente: wikipedia
« Última modificación: Mayo 26, 2008, 12:21:51 pm por >> s E t H << »


Ves links a xd-blog.com.ar que no andan? buscalos en You are not allowed to view links. Register or Login

Desconectado seth

  • El mas real
  • G#
  • **
  • Mensajes: 7889
  • Sexo: Masculino
    • Ver Perfil
Re: Información sobre los programas para programar
« Respuesta #1 en: Mayo 26, 2008, 12:23:38 pm »
Intérprete

Un intérprete es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código máquina del sistema destino, los primeros (los interpretes) sólo realizan la traducción a medida que sea necesario, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.
 
Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual).

Comparando su actuación con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito.

En la actualidad, uno de los entornos más comunes de uso de los intérpretes informáticos es Internet, debido a la posibilidad que estos tienen de ejecutarse independientemente de la plataforma.



Ejemplos

Algunos ejemplos de lenguajes que son normalmente interpretados en vez de compilados son:

    * Perl
    * PHP
    * Java
    * Javascript
    * Logo
    * ASP (hasta la versión 3)
    * Python




Lenguaje interpretado


Se conoce como lenguaje interpretado a un lenguaje de programación que fue diseñado para ser ejecutado por medio de un intérprete, en contraste con los lenguajes compilados. También se les conoce como lenguajes de script. Muchos autores rechazan la clasificación de lenguajes de programación entre interpretados y compilados, considerando que el modo de ejecución (por medio de intérprete o de compilador) del programa escrito en el lenguaje es independiente del propio lenguaje.

 
Fuente: wikipedia
« Última modificación: Mayo 26, 2008, 12:24:37 pm por >> s E t H << »

Desconectado seth

  • El mas real
  • G#
  • **
  • Mensajes: 7889
  • Sexo: Masculino
    • Ver Perfil
Re: Información sobre los programas para programar
« Respuesta #2 en: Mayo 26, 2008, 12:31:14 pm »
Depurador


Un depurador (en inglés, debugger),es un programa que permite depurar o limpiar los errores de otro programa informático.
Tabla de contenidos


Uso


Al Iniciarse la depuración, el depurador lanza el programa a depurar. Éste se ejecuta normalmente hasta que el depurador detiene su ejecución, permitiendo al usuario examinar la situación.

El depurador permite detener el programa en:

    * Un punto determinado mediante un punto de ruptura.
    * Un punto determinado bajo ciertas condiciones mediante un punto de ruptura condicional.
    * Un momento determinado cuando se cumplan ciertas condiciones.
    * Un momento determinado a petición del usuario.

Durante esa interrupción, el usuario puede:

    * Examinar y modificar la memoria y las variables del programa.
    * Examinar el contenido de los registros del procesador.
    * Examinar la pila de llamadas que han desembocado en la situación actual.
    * Cambiar el punto de ejecución, de manera que el programa continúe su ejecución en un punto diferente al punto en el que fue detenido.
    * Ejecutar instrucción a instrucción.
    * Ejecutar partes determinadas del código, como el interior de una función, o el resto de código antes de salir de una función.

El depurador depende de la arquitectura y sistema en el que se ejecute, por lo que sus funcionalidades cambian de un sistema a otro. Aquí se han mostrado las más comunes.

Información de depuración


Para poder aprovechar todas las posibilidades de depuración es necesario que, al compilar el programa a depurar, se indique al compilador que debe incluir instrucciones e información extra para la depuración del código. Dicha información extra consiste básicamente en la correspondencia entre las instrucciones del código ejecutable y las instrucciones del código fuente que las originan, así como información sobre nombres de variables y funciones.

Aún si no se incluye esta información de depuración, sigue siendo posible monitorizar la ejecución del programa. Sin embargo, resultará más difícil y compleja debido a esa falta de información del contexto en el que se ejecuta el programa.

Otros usos

Un depurador también puede usarse para realizar ingeniería inversa o evitar protecciones de copia. Mediante el uso del depurador se puede conocer el funcionamiento interno del programa examinado, ayudando al proceso de ingeniería inversa o permitiendo desarrollar técnicas para evadir las restricciones impuestas por el programa.

Efectos secundarios


Es importante notar que un programa que está siendo depurado puede presentar un comportamiento diferente a si se ejecuta en solitario debido a que el depurador cambia ligeramente los tiempos internos del programa. Estos cambios en los tiempos de ejecución afectan especialmente a sistemas complejos multihebra o sistemas distribuidos.



fUENTE: wikipedia

Desconectado brutal link

  • Me das tu IP?
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Información sobre los programas para programar
« Respuesta #3 en: Agosto 19, 2009, 01:46:05 am »
mmm me parese un buen aporte, para tener en claro de como trabajan los programas de programacion... ya habia leido sobre eso y tambien me lo explicaron en clases... asi q buen aporte...  :toma:

Desconectado TheEGG89

  • Yo vivo en CPH
  • ***
  • Mensajes: 506
    • Ver Perfil
Re: Información sobre los programas para programar
« Respuesta #4 en: ſeptiembre 09, 2010, 02:49:05 pm »
Buena información amigo!!, estuve leyendo en lineas generales, luego entraré en profundidad :)

Desconectado diegopelusadepupo

  • Me das tu IP?
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Información sobre los programas para programar
« Respuesta #5 en: Mayo 14, 2011, 08:34:30 pm »
Haganme un favor amigos, soy nuevo programando y me conseguí el compilador Dev-C++, el problema que siempre he tenido es que después de ejecutarse el programa se cierra inmediatamente, y es un problema cuando he impreso algo en la pantalla y quiero ver los resultados, lo corregí momentaneamente usando system ("PAUSE"); sin embargo;
al momento estoy revisando algo de Clases y para depurar estoy usando <<cassert>>, pero no puedo revisar los mensajes de error (las lineas y el problema) porque se cierra de inmediato, no se qué hacer, si alguien puede ayudarme se lo agradecería muchísimo.

Desconectado seth

  • El mas real
  • G#
  • **
  • Mensajes: 7889
  • Sexo: Masculino
    • Ver Perfil
Re: Información sobre los programas para programar
« Respuesta #6 en: Mayo 14, 2011, 08:43:14 pm »
ejecutalo desde la consola

Desconectado diegopelusadepupo

  • Me das tu IP?
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Información sobre los programas para programar
« Respuesta #7 en: Mayo 14, 2011, 09:40:08 pm »

Nada, no funciona. ¿Hay tal vez alguna forma de detener estos mensajes de error para poder leerlos?

Desconectado seth

  • El mas real
  • G#
  • **
  • Mensajes: 7889
  • Sexo: Masculino
    • Ver Perfil
Re: Información sobre los programas para programar
« Respuesta #8 en: Mayo 22, 2011, 05:29:20 pm »
la consola no se cierra sola, si los errores salen por stderr los tenes que ver

Desconectado .ASDO.

  • Me das tu IP?
  • *
  • Mensajes: 64
  • C es el lenguaje de programcion de Dios
    • Ver Perfil
Re: Información sobre los programas para programar
« Respuesta #9 en: Junio 05, 2011, 10:20:46 am »
Tienes ke escribir getchar();
Avisame si no funciona.
Suerte! ;)
Mi letra favorita es la C
You are not allowed to view links. Register or Login

Desconectado igone

  • Me das tu IP?
  • *
  • Mensajes: 6
  • Sexo: Femenino
  • Yo AMO a pOrtal HAcker!
    • Ver Perfil
Re:Información sobre los programas para programar
« Respuesta #10 en: Febrero 26, 2012, 04:38:44 pm »
Buen aporte,sigue asi, dando buenos aportes.  :)

Desconectado OzX

  • Me das tu IP?
  • *
  • Mensajes: 40
  • Sexo: Masculino
  • Undersecurity.net
    • Ver Perfil
    • Undersecurity.net
Re:Información sobre los programas para programar
« Respuesta #11 en: Julio 11, 2012, 01:47:36 pm »
Se llaman IDE. No Programas para Programar.
Undersecurity.net

Desconectado HackID1

  • Me das tu password?
  • **
  • Mensajes: 206
  • Sexo: Masculino
  • Todo es posible, cuando te lo propones.
    • Ver Perfil
Re:Información sobre los programas para programar
« Respuesta #12 en: Noviembre 04, 2012, 07:29:28 am »
Interesante la introducción.

Siempre me ha gustado y llamado la atención a esto de programación, si pueden ayudarme, y decirme algunos manuales buenos, y que herramientas se tienen que usar para dicho lenguaje les agradecería.

Por ejemplo para poder crear algun programa SW básico y que luego valla avanzando poco a poco.
Saber las herramientas q tengo que usar y como, o que lenguaje hay que saber.

Gracias. Y sigue con estos temas !!! :koolCPH:
=Multitarea: Dos o más programas pueden fallar simultáneamente.
=El computador nació para resolver problemas que antes no existían.

:*: HACKID


xx
tienen información sobre como programar un escaner de red local?[Solucionado]

Iniciado por proxy_lainux

2 Respuestas
1150 Vistas
Último mensaje Diciembre 18, 2012, 01:28:54 pm
por taul
xx
Programas... para programar..??

Iniciado por Salteño

8 Respuestas
2022 Vistas
Último mensaje ſeptiembre 04, 2007, 10:17:42 pm
por ktulucult
exclamation
Programas para programar [Full]

Iniciado por xT3mP

0 Respuestas
2797 Vistas
Último mensaje Octubre 09, 2010, 10:24:47 pm
por xT3mP
xx
porfavor dime q bajo para programar programas?

Iniciado por _DraGoN-W23_

4 Respuestas
1960 Vistas
Último mensaje Enero 31, 2006, 11:34:01 pm
por _DraGoN-W23_
question
Necsito Informacion sobre SQL, MYSQL para BD Acces con ADO ¿Donde?...

Iniciado por angelcont22

2 Respuestas
1090 Vistas
Último mensaje Noviembre 20, 2009, 10:20:30 am
por EddyW
question
Presentación y pregunta sobre notebook para programar, soy nuevo en el foro.

Iniciado por Ch1n0x;)

3 Respuestas
1644 Vistas
Último mensaje Marzo 12, 2012, 11:52:52 am
por Khan-BG
xx
informacion sobre IP

Iniciado por Clover!

1 Respuestas
1117 Vistas
Último mensaje ſeptiembre 04, 2010, 01:13:08 pm
por .xAk.
exclamation
Informacion sobre ASM

Iniciado por WaesWaes

1 Respuestas
4835 Vistas
Último mensaje Enero 27, 2012, 07:04:01 pm
por Stuxnet
xx
Información sobre clickjacking

Iniciado por seth

3 Respuestas
1360 Vistas
Último mensaje Abril 26, 2010, 04:33:29 am
por fedevcpss
question
Información sobre intrusiones.

Iniciado por xxaavvii95

0 Respuestas
1115 Vistas
Último mensaje Mayo 10, 2011, 02:40:10 pm
por xxaavvii95