Subido por KZY OFICIAL

INTRODUCCION A LA PROGRAMACION

Anuncio
1
Microsoft Windows. De los más populares que existen, inicialmente se trató
de un conjunto de distribuciones o entornos operativos gráficos, cuyo rol era
brindar a otros sistemas operativos más antiguos como el MS-DOS, de una
representación visual de soporte y de otras herramientas de software. Se publicó
por primera vez en 1985 y desde entonces se ha actualizado a nuevas versiones.
MS-DOS. Se trata del Sistema Operativo de Disco de MicroSoft (siglas en
inglés de MicroSoft Disk Operating System), fue de los sistemas operativos más
comunes para computadoras personales IBM durante la década de 1980 y
mediados de los 90. Contaba con una serie de comandos internos y externos,
mostrados en una pantalla oscura de manera secuencial.
UNIX. Este sistema operativo fue desarrollado tempranamente en 1969, para
ser portable, multitarea y multiusuario. Se trata realmente de una familia entera de
SO similares, algunas de cuyas distribuciones se han ofrecido comercialmente y
otros en formato libre, siempre a partir del núcleo llamado Linux.
MacOS. Se llama así al sistema operativo de los computadores Macintosh de
Apple, y se le conoce también como OSX o Mac OSX. Basado en Unix y
desarrollado y vendido en computadores Apple desde 2002, se trata de la
competencia más acérrima del popular Windows.
Ubuntu. Este sistema operativo es libre y de código abierto, o sea, que todo el
mundo podría modificarlo sin violar derechos autorales ningunos. Toma su nombre
de cierta filosofía surafricana ancestral, enfocada en la lealtad del hombre hacia su
propia especie por encima de todo. Basado en GNU/Linux, Ubuntu se orienta
hacia la facilidad de uso y la libertad total, y la empresa británica que lo distribuye,
Canonical, subsiste brindando servicio técnico.
Android. Este sistema operativo basado en el núcleo Linux, opera en teléfonos
celulares y tablets y otros artefactos dotados de pantalla táctil. Fue desarrollado
por Android Inc. y comprado posteriormente por Google, gracias a lo cual es tan
popular que las ventas de sistemas informáticos Android superan a las de IOS
(para teléfonos celulares Macintosh) y a las de Windows Phone (para teléfonos
celulares MicroSoft).
Que es un sistema operativo “SO”
Se conoce como Sistema Operativo (SO) al programa informático o conjunto de ellos
que administran un sistema computarizado, tanto el desempeño de los recursos físicos
(hardware), como los protocolos de ejecución del contenido digital (software) y la interfaz
con el usuario. En pocas palabras, se trata de programas que permiten y regulan los
aspectos más básicos del sistema y sin los cuales no podría funcionar adecuadamente.
2. ¿Para qué sirve un sistema operativo?
Como se ha dicho, los sistemas operativos son parte esencial del funcionamiento
de los sistemas informáticos. Son la pieza de software central en la cadena
de procesos, ya que establecen las condiciones mínimas para que la cosa ande:
la administración de los recursos, el método de comunicación con el usuario y con
otros sistemas, las aplicaciones adicionales, etc
CARACTERISTICAS
1. Conveniencia: Un SO hace más conveniente el uso de una computadora.
2. Eficiencia: El SO permite que los recursos de la computadora se usen de manera
correcta y eficiente.
3. Habilidad para evolucionar: un SO debe de ser capaz de aceptar nuevas
funciones sin que tenga problemas.
4. Encargado de administrar el hardware: el SO debe de ser eficaz, recibiendo
las señales provenientes de lo periféricos y Hardware en general.
5. Relacionar dispositivos: cuando el SO detecta otro sistema operativo conectado
en si mismo.
6. Algoritmos: un SO hace el uso de la computadora más racional y eficiente.
FUNCION
La función del sistema operativo es la de presentar al usuario con el equivalente
de una máquina ampliada o máquina virtual que sea más fácil de programar que
el hardware implícito.
1.2)
1.3)
Primer lenguaje de programación
1843
Ada Lovelace desarrolla el primer lenguaje de programación cuando escribió un algoritmo para
la máquina analítica de Charles Babbage.
Primera generacion
1940
Código máquina y Ensambladores
La primera generación de lenguajes de programación consistía enteramente de una secuencia
de 0s y 1s que los controles de la computadora interpreta como instrucciones, eléctricamente.
Representan los primeros lenguajes de programación que la computadora podía entender, son
conocidos como lenguaje máquina.
Desarrolo del lenguaje ensamblador
1950
Es un lenguaje de programacion de bajo nivel, basado en la representacion de código de
máquina. (binario ) El ensamblador realiza la traduccion del codigo de máquina.
Segunda generacion
1950
Lenguaje simbólico (ensambladores):
Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la
máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. El lenguaje
ensamblador es el primer intento de sustituir el lenguaje maquina por otro más similar a los
utilizados por las personas. Este intenta desflexibilizar la representación de los diferentes
campos. Esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la
escritura al lenguaje. A principios de la década de los 50 y con el fin de facilitar la labor de los
programadores, se desarrollaron códigos mercadotécnicos para las operaciones y direcciones
simbólicas.
Fortran
1957
(“The IBM Mathematical Formula Translating System”): Un lenguaje de programación de alto
nivel de propósito general. Para cálculo numérico y científico (como alternativa al lenguaje
ensamblador). Es el lenguaje de programación más antiguo que se utiliza hoy en día.
Lips
1958
(“List Processor”) Utilizado para la notación matemática y temas de ciencias de la
computación.
Cobol
1959
(“Common Business-Oriented Language) Usado principalmente para la informática
empresarial. Es el primer lenguaje de programación que se demandan por el Departamento de
Defensa de EE.UU..
Tercera generacion
1959
LENGUAJES DE ALTO NIVEL:
Estos lenguajes son los mas utilizado por los programadores. Están diseñados para que las
personas escriban y entiendan los programas de un modo mucho mas fácil que los lenguajes
máquina y ensamblador. Un programa escrito en lenguaje de alto nivel es independiente de la
máquina (las instrucciones no dependen del diseño del hardware o de una computadora en
particular), por lo que estos programas son portables o transportables. Los programas escritos
en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferentes
tipos de computadoras. Son lenguajes de programación en los que las instrucciones enviadas
para que el ordenador ejecute ciertas órdenes son similares al lenguaje humano. Dado que el
ordenador no es capaz de reconocer estas ordenes, es necesario el uso de un intérprete que
traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender.
Basic
1964
(“Beginner’s All-purpose Symbolic Instruction Code”) Diseñado para la simplicidad. Su
popularidad explotó a mediados de los años 70 con los computadores personales.
Cuarta generacion
1967
La Programación Orientación a Objetos (P.O.O.):
surge en Noruega en 1967 con un lenguaje llamado Simula 67, desarrollado por Krinsten
Nygaard y Ole-Johan Dahl, en el centro de cálculo noruego.
Simula 67 introdujo por primera vez los conceptos de clases, corrutinas y subclases
(conceptos muy similares a los lenguajes Orientados a Objetos de hoy en día).
Pascal
1970
Es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth. Su objetivo
era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando
la programación estructurada y estructuración de datos. Sin embargo con el tiempo su
utilización fue de gran uso para herramientas de todo tipo.
Quinta generacion
1970
La quinta generación de computadoras, también conocida por sus siglas en inglés, FGCS (de
Fifth Generation Computer Systems), fue un ambicioso proyecto hecho por Japón a finales de
la década de 1970. Su objetivo era el desarrollo de una nueva clase de computadoras que
utilizarían técnicas y tecnologías de inteligencia artificial tanto en el plano del hardware como
del software, usando el lenguaje PROLOG2 al nivel del lenguaje de máquina y serían capaces
de resolver problemas complejos, como la traducción automática de una lengua natural a otra
(del japonés al inglés, por ejemplo).
C
1972
(Basado en un lenguaje anterior llamado “B”) Creado para sistemas Unix. Muchos de
lenguajes de programación más populares del mundo son derivados de el, entre ellos tenemos
C#, Java, JavaScript, Perl, PHP y Python.
Ada
1980
(En honor a Ada Lovelace): Es derivado del Pascal. Contratado por el Departamento de
Defensa de los EE.UU. en 1977 para el desarrollo de sistemas de software grandes.
C++
1983
C++ es un lenguaje de programación diseñado por Bjarne Stroustrup. La intención de su
creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan
la manipulación de objetos.
Objective-C
1983
Es un lenguaje de programación orientado a objetos creado como un superconjunto de C para
que implementase un modelo de objetos parecido al de Smalltalk. Originalmente fue creado
por Brad Cox y la corporación StepStone en 1980.
Perl
1987
Larry Wall comenzó a trabajar en Perl en 1987 mientras trabajaba como programador en
Unisys y anunció la versión 1.0 en el grupo de noticias comp.sources.misc el 18 de diciembre
de 1987. El lenguaje se expandió rápidamente en los siguientes años. Perl 2, publicado en
1988, aportó un mejor motor de expresiones regulares. Perl 3, publicado en 1989, añadió
soporte para datos binarios.
Phyton
1991
se remonta hacia finales de los 80s principio de los 90s1 y su implementación comenzó en
diciembre de 1992 cuando en Navidad Guido Van Rossum que trabajaba en el (CWI) (un
centro de investigación holandés de carácter oficial) decidió empezar el proyecto como un
pasatiempo dándole continuidad al lenguaje de programación ABC del que había formado
parte del equipo de desarrollo en el CWI,3 dicho lenguaje se enfocaba en ser fácil de usar y
aprender manteniendo potencia en su desempeño pero el hardware disponible en la época de
su creación hacía difícil su uso y el proyecto no trascendió como se esperaba.
Ruby
1993
Ruby es un lenguaje de programacion de alto nivel que fue inventado por Yukihiro “Matz”
Matsumoto, en Japón, lanzado al mundo en 1995. Ruby es un lenguaje interpretado, de
codigo abierto, y orientado a objetos.
Java
1995
El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun
Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un
componente fundamental de la plataforma Java de Sun Microsystems.
JavaScript
1995
Javascript es un lenguaje de programación interpretado dialecto del estándar ECMAScript. Se
define como orientado a objetos2 , basado en prototipos, imperativo, débilmente tipado y
dinámico. Diseñado por: Netscape Communications Corp, Mozilla Fundation
PHP
1995
Creado por Rasmus Lerdorf, la primera encarnación de PHP era un conjunto simple de
ficheros binarios Common Gateway Interface (CGI) escritos en el lenguaje de programación C.
Originalmente utilizado para rastrear visitas de su currículum online, llamó al conjunto de
scripts "Personal Home Page Tools", más frecuentemente referenciado como "PHP Tools".
INTERPRETE
1. 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 de máquina del sistema, los primeros (los intérpretes) sólo
realizan la traducción a medida que sea necesaria, típicamente, instrucción por
instrucción, y normalmente no guardan el resultado de dicha traducción. Usando
un intérprete, un solo archivo fuente puede producir resultados iguales incluso en
sistemas sumamente diferentes (ej. una PC y un PlayStation 3). Usando
un compilador, un solo archivo fuente puede producir resultados iguales solo si es
compilado a distintos ejecutables específicos a cada sistema.
2.
que analiza el programa fuente y lo ejecuta directamente, sin generar ningún código
equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases
que oye sobre la marcha, sin producir ningún escrito permanente. Intérpretes y
compiladores tienen diversas ventajas e inconvenientes que los hacen
complementarios:
3. Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede
interrumpirse en cualquier momento para estudiar el entorno (valores de las variables,
etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de
volver a comenzar la ejecución.
4. Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del
lenguaje fuente se hace una sola vez, durante la generación del programa equivalente.
En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción
tantas veces como se ejecute (incluso miles o millones de veces).
5. Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo
ejecutar código contenido en una variable en forma de cadenas de caracteres.
Usualmente, este tipo de instrucciones es imposible de tratar por medio de
compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto,
exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que
permiten el uso de un compilador, prescinden de este tipo de operadores.
CONPILADORES
Un compilador es un programa informático que traduce un
programa escrito en un lenguaje de programación a otro lenguaje de
programación. Usualmente el segundo lenguaje es lenguaje de
máquina, pero también puede ser un código intermedio (bytecode), o
simplemente texto. Este proceso de traducción se conoce
como compilación.
La construcción de un compilador involucra la división del proceso en
una serie de fases que variará con su complejidad. Generalmente estas
fases se agrupan en dos tareas: el análisis del programa fuente y la
síntesis del programa objeto.


Análisis: Se trata de la comprobación de la corrección del
programa fuente, e incluye las fases correspondientes al Análisis
léxico (que consiste en la descomposición del programa fuente
en componentes léxicos), Análisis sintáctico (agrupación de los
componentes léxicos en frases gramaticales ) y Análisis
semántico (comprobación de la validez semántica de las
sentencias aceptadas en la fase de Análisis Sintáctico).
Síntesis: Su objetivo es la generación de la salida expresada en
el lenguaje objeto y suele estar formado por una o varias
combinaciones de fases de Generación de Código (normalmente
se trata de código intermedio o de código objeto) y de
Optimización de Código (en las que se busca obtener un código
lo más eficiente posible).
Alternativamente, las fases descritas para las tareas de análisis y
síntesis se pueden agrupar en Front-end y Back-end:


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, y está
compuesta por las fases comprendidas entre el Análisis Léxico y
la Generación de Código Intermedio.
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. Suele incluir la generación y
optimización del código dependiente de la máquina.
BIBLIOGRAFIA
http://www.ictea.com/cs/index.php?rp=/knowledgebase/8817/iQue-es-un-programacompilador.html
https://concepto.de/sistema-operativo-2/#ixzz5w1dCcqbH
https://sites.google.com/site/sedechiapa/home/compiladores-e-interpretes
https://www.ecured.cu/Int%C3%A9rprete_(Inform%C3%A1tica)
https://www.preceden.com/timelines/310321-evoluci-n-de-los-lenguajes-de-programacion
Descargar