viernes, 28 de febrero de 2014

1.3 Interpretes y compiladores

1.3 Interpretes y compiladores

COMPILADORESUn compilador analiza el programa y lo traduce al idioma "maquina". La acción fundamental los compiladores es equivalente a la de un traductor humano , que toma nota de lo que esta escuchando y reproduce por escrito en otra lengua.

INTERPRETES
Analiza el programa fuente y lo ejecuta directamente, o sea en el ejemplo del traductor humano, éste sería un traductor humano que conforme a lo que está escuchando va ejecutando, sin generar ningun escrito, es decir que sobre la marcha va traduciendo.

Diferencias entre compilar e interpretar
La opción de compilar o interpretar no está siempre disponible. Algunos lenguajes típicamente se compilan y otros típicamente se interpretan. En muy pocas ocasiones podemos optar por una u otra indistintamente.
Por ejemplo, programas escritos en lenguajes como C o Pascal prácticamente siempre se compilan, y otros como Perl o Python prácticamente siempre se interpretan.
En el siguiente cuadro se esquematizan algunas de las diferencias entre compilar e interpretar


Conclusion
esta parte del curso se enfoco a la parte "las herramientas que se usan para programar" y esta no es la exepcion ya que aprendemos que es un compilador y que es un interprete, lo cual nos ayuda ya que sabemos con certeza que nos puede ayudar de mejor manera.

Cuestionario
1¿Que es un interprete? y que hace?
2¿Que es un compilador? y que hace?
3¿Menciona 5 diferencias entre ellos?
4 Compara en la vida cotidiana a un compilador y da ejemplo
5 compara en la vida cotidiana a un interprete y da ejemplo

1.2 Evolución de lenguajes de Programación

1.2 Evolución de lenguajes de Programación

¿Que es un lenguaje de programacion?
Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más.

Según la forma de ejecución, se dividen en dos tipos diferentes

-Lenguajes compilados

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.
Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).
Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.

-Lenguajes interpretados

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción.



No hay un único tipo de lenguajes, sino que se clasifican según las características que posean y según el paradigma y conceptos que soporten.

Por su nivel:

  o Bajo nivel. No hay abstracciones de datos ni de procesos. Ejemplos: Assembler, editores hexadecimales.

  o Alto nivel. Permite abstraer varios aspectos que simplifican la programación. En general son algo menos    eficientes que los de bajo nivel. Ejemplos,Pascal, Ada, Java, C++, Prolog, etc.

Por su jerarquización:
  o Primera generación. Fue el primer lenguaje. Se utilizan unos y ceros para representar los "cableados", que anteriormente se hacían a mano. Ej: Lenguaje máquina.

  o Segunda generación. Se asignan nombres simbólicos para las distintas instrucciones, que internamente son combinaciones de unos y ceros. Ej: Assembler.

  o Tercera generación. Lenguajes de alto nivel. Son los más populares y más fáciles de usar.

  o Cuarta generación. Lenguajes 4GL, o de gestión de bases de datos; como SQL, QueryByExample, etc.

Por el manejo de las instrucciones:

  o Imperativos: Un programa se especifica por medio de una secuencia de instrucciones que se ejecutan de esa manera, en secuencia. Ej: FORTRAN.

  o Orientados a objetos: Soportan abstracciones de datos y procesos conocidas como objetos. Ej: C++, Ada, Java, Smalltalk.

  o Funcionales: Especifican una solución como un conjunto y una composición de funciones. Ej: Miranda, Haskell, ML, Camel.

  o Lógicos: Permiten obtener resultados lógicos o relaciones entre elementos. Ej: Prolog.

  o Concurrentes, paralelos y distribuidos: Soportan procesamiento paralelo, es decir, al mismo tiempo. Pascal Concurrente, Java (hilos).

Por la programación:

  o Imperativos: Incluye los paradigmas imperativo y orientado a objetos.

  o Declarativos: Incluye los paradigmas funcional y lógico.


Video


conclusion:
en este tema logramos comprender como es un lenguaje de programacion y sus etapas de desarrollo 3, tambien sus tipos y clasificaciones.Esto nos sirve para saber que tipo de lenguaje podremos utilizar en cada uno de los problemas que se nos presenten

cuestionario:
1¿que es un lenguaje de programacion?
2¿menciona tres lenguajes de programacion?
3¿menciona por lo menos 5 clasificaciones de lenguajes de programacion?
4¿da un ejemplo basico de como se utiliza un lenguaje?
5¿que es un lenguaje compilado?

jueves, 27 de febrero de 2014

1.1 Sistemas Operativos

SISTEMAS OPERATIVOS
Conjunto de programas que se integran con el hardware para facilitar al usuario, el aprovechamiento de los recursos disponibles. Algunos de sus objetivos principales son:

  • Provee de un ambiente conveniente de trabajo.

  • Hace uso eficiente del Hardware.

  • Provee de una adecuada distribución de los recursos.
Para un Sistema Operativo real deberá satisfacer las siguientes funciones:

  • Gobierna el Sistema.

  • Asigna los recursos.

  • Administra y controlar la ejecución de los programas.
Un sistema de computo en muchos casos cuenta con demasiados recursos para ser utilizados por un solo usuario, es en estos casos cuando se puede dar servicio a varios procesos.
 
Sistema Operativo
Llamadas al Sistema
El Sistema Operativo en conjunto con el Hardware aparecen al usuario como un solo dispositivo con un conjunto de instrucciones más flexibles y variadas a las que se conoce como Llamadas al Sistema (System Callings).
Intérprete de Comandos
También conocido por su nombre en inglés, Shell, es un programa que interpreta las órdenes del usuario y las convierte en Llamadas al Sistema.
Núcleo (o Kernel)
Es la parte del Sistema Operativo que se encarga de sincronizar la activación de los procesos y definir prioridades.
Programas del Sistema
Son programas de servicio que debe ser solicitados explícitamente por los usuarios. Como ejemplos de estos tenemos:
  1. Compiladores
    Son programas que traducen Programas Fuente en programas Objeto.
  2. Ensambladores
    Traducen programas escritos con mnemónicos a lenguaje de máquina.
  3. Editores
    Son programas que permiten escribir textos y guardarlos en memoria secundaria.
  4. Utilerías de Archivos
    Programas para dar mantenimiento a los archivos.
  5. Bibliotecas
    Programas que contienen rutinas para realizar funciones frecuentemente requeridas. Estas funciones pueden ser ligadas a los programas escritos por el usuario.
Programas de Aplicación
Programas externos al sistema, utilizados para realizar tareas específicas como simulación, creación y edición de gráficas e imágenes, etc..

Sistema Operativo
Es el programa o programas que tienen todas las computadoras modernas, el usuario de un equipo de computo no tiene que preocuparse de como funciona, por ejemplo, una unidad lectora de disco, sólo necesita pedirle al sistema operativo que lo lea o escriba en el disco mediante un comando. El más comúnmente usado es el MS-DOS.
Conjunto de programas que sirven como interfaz entre el usuario (Sirve como agente de intercambio de información entre la computadora y el usuario.) y la computadora, además de que administran los recursos de la misma (Entendiéndose como recursos: Memoria, Disco Duro, Procesador, Monitor, Etc.).

COMPARACION DE SISTEMAS

http://i47.tinypic.com/24uxdzm.png

CONCLUSION 
en esta practica se aprende la definicion de sistema operativo y sus principales caracteristicas, tambien como los diferentes tipos de sistemas operativos que hay en el mercado, esto lo podemos usar a la hora de optimizar una pc ya que le podriamos poner un SO ligero para una mayor fluidez.

Programa de estudios


Programa de estudios



UNIDADES

UNIDAD I "INTRODUCCION A LA PROGRAMACION"




1.1.Sistemas Operativos
1.1.1. Definición, Características y Función de un Sistema Operativo.
1.1.2. Análisis comparativo de Sistemas Operativos (MS- DOS, LINUX, WINDOWS)
1.2.Evolución de los lenguajes de programación.
1.2.1. Definición, Características y Funciones de los Lenguajes de Programación.
1.3.Interpretes, Compiladores.
1.3.1. Definición de Intérpretes y Compiladores, Ambiente integral del Lenguaje C

UNIDAD II "FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA"




2.1. Estructura general de un programa.
2.2. Tipos de datos y Operadores
2.2.1. Tamaños, Declaración, Modificadores
2.2.2. Operadores Lógicos, Aritméticos y de Asignación
2.3. Funciones de biblioteca.
2.3.1. Funciones de Entrada y Salida.
2.3.2. Funciones Matemáticas
2.4. Funciones generadas por el usuario.
2.4.1. Argumentos y Parámetros Formales
2.4.2. Funciones con y sin Argumentos
2.4.3. Funciones que Regresan Valores

UNIDAD III "ESTRUCTURA DE FLUJO PROGRAMATICO"




3.1. Estructuras de decisión
3.1.1. Simple
3.1.2. Ramificada
3.2. Estructuras de iteración
3.2.1. Pre y Post Condicional, Contador y Acumuladores
3.3. Estructuras de control
3.3.1. Ruptura de un Lazo

UNIDAD IV "ESTRUCTURA DE DATOS"




4.1. Arreglos unidimensionales
4.1.1. Concepto y Forma General
4.1.2. Arreglos Numéricos y de Caracteres
4.2. Arreglos bidimensionales
4.2.1. Concepto y Forma General
4.2.2. Arreglos Numéricos y de Caracteres
4.3. Apuntadores
4.3.1. Concepto
4.3.2. Tipos de Apuntadores
4.3.3. Operaciones con Apuntadores
4.3.4. Relación de Apuntadores con Arreglos

UNIDAD V "APLICACIONES"




5.1. Análisis del problema y elaboración del algoritmo
5.2. Codificación e Implementación
5.3. Pruebas modulares e integrales
5.4. Mantenimiento

miércoles, 19 de febrero de 2014

PORTADA VICTOR FP







INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN 



MENDOZA ZEPEDA VÍCTOR MANUEL

FUNDAMENTOS DE PROGRAMACIÓN