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