lunes, 23 de agosto de 2010

.: Exposición de Lenguajes :.

:: Fases de los Preprocesadores ::



Materia: Lenguajes de Programación

Hora. Martes M1 - M3

Compañeros, aquí les dejo lo que es mi presentación acerca del tema de Preprocesadores, el cual expondre junto con mi compañero Roberto Martinez.

Yo sólo hablare acerca de los pasos que hace el preprocesador al momento de querer compilar un código, tomando de base el lenguaje C.

A continuación podrán descargar la presentación del tema, ya sea en formato ppsx o formato pdf. Sólo haz clic encima del icono deseado.


lunes, 16 de agosto de 2010

.: Tarea 2 :.

:: Lenguaje Octave ::


Materia. Lenguajes de Programación

Hora. Martes M1 - M3

Hola compañeros, he me aquí de nuevo.

Ahora les muestro la presentación que realice sobre el lenguaje de programación que escogí: "Octvave".

Octave es un lenguaje de alto nivel que se orienta principalmente a las operaciones o cálculos matemáticos. El otro lenguaje parecido a éste, es el Matlab; sin embargo, la diferencia es que Octave es gratuito y Matlab, comercial. En pocas palabras Octave es el Matlab sin costo.

Las operaciones o cálculos matemáticos que se pueden manejar en este lenguaje, van desde aritmética, hasta cálculo integral y el manejo de matrices. También es posible graficar con este lenguaje.

Nosotros en clase manejamos el editor de texto Emacs en ubuntu para la mayoría de los lenguajes. Octave es la excepción, pues es requerido un editor diferente y especial para este lenguaje: "SciTE". Considerado también uno de los más potentes y fáciles de usar. Viene incluido en el link que va hacía la descarga del instalador, el cual puede colorcarse en plataforma Windows, MAC OS, Linux, etc.

A continuación, presento un código hecho en Octave el cual resuelve un sistema de ecuaciones lineales mediante la utilización de una matriz, aplicando el método de Gauss Jordan.

function X = gaussj(A,B)

# Forma de llamar la funcion
# X = gauss(A,B)
# Entradas
# A Matriz de Coeficientes
# B Vector del lado derecho
# Devuelve# X Vector Solucion
##
-----------------
[n n] = size(A);
A = [A';B']';
X = zeros(n,1);

for p = 1:n,
     for k = [1:p-1,p+1:n],
          if A(p,p)==0, break, end
               mult = A(k,p)/A(p,p);
               A(k,:) = A(k,:) - mult*A(p,:);
          end
     end
     X = A(:,n+1)./diag(A);
end

A continuación les dejo los links para la presentación, el manual, el sitio para el instalador y el manual donde vienen los cálculos numéricos si es que gustan ver unos detalles más.
Saludos a todos.

PD. Cualquier problema con los links avisen por favor. Gracias.

miércoles, 11 de agosto de 2010

.: Terminal de UBUNTU: Ficheros :.

:: Ficheros en Terminal Ubuntu ::


Materia: Lab de Leng de Progra

Hora. Jueves V1

Hola a todos, de nueva cuenta les traigo algo, aunque no tan nuevo. ¿A qué me refiero? Pues resulta que más adelante les traigo lo que son las instrucciones más utilizadas para manipular los ficheros y archivos dentro del terminal de Ubuntu.

  1. Cambiar la carpeta de trabajo.
    cd

    NOTA. Para regresar a la carpeta anterior, es necesario colocar dos puntos después de la instrucción
  2. Mostrar el contenido de la carpeta.
    ls
  3. Crear una carpeta.
    mkdir (nombre de carpeta)

  4. Borrar una carpeta.
    rmdir (nombre de carpeta)

  5. Copiar un archivo o carpeta en otro lugar.
    cp / carpeta origen / nombre de archivo / carpeta de destino / nombre nuevo de archivo
  6. Mover un archivo o carpeta a otra ubicación.
    mv / carpeta origen / nombre de archivo / carpeta de destino / nombre nuevo de archivo
  7. Borrar archivos o carpetas
    rm (nombre de archivo o carpeta)

    NOTA. Esta función no borra un directorio vacio ni subcarpetas. Por lo tanto, es importante usar la función rm -R. Dicha función elimina hasta las subcarpetas.
  8. Mostrar el contenido de los archivos por la salida estandar (pantalla) en el terminal
    cat (nombre del archivo)

  9. Buscar archivos recorriendo árboles de directorios especificados por las rutas.
    find (ruta) (condición(es) de búsqueda) (acciones)

  10. Mostrar el nombre de la carpeta donde nos encontramos.
    pwd
Todo esto es solo un pequeño recordatorio de lo visto ya en clase de Lenguajes de Programación

Bibligrafía

martes, 10 de agosto de 2010

.: Emacs :.

:: Buffers y Archivos ::



Materia: Lab de Lenguajes de Programación

Hora: Jueves V1

Que tal compañeros, encontre un dato interesante sobre la operación de Emacs, no se que piensen ustedes: Con Emacs no se editan archivos.

Cuando hemos abierto Emacs, éste encuentra un archivo (por decirlo de alguna manera). Emacs lo copia en un buffer temporal y es ahi donde trabajamos con dicha copia.

Quizás algunos no tengan la idea exacta de lo que es un buffer. Un buffer es sólo una ubicación reservada en la memoria para el almacenamiento temporal de datos. ¿Que significa esto? Significa que si no se guarda en una unidad de disco, la información de buffer se perdera.

Retomando el tema, al momento que tenemos Emacs abierto, tendremos dos estatus del archivo "encontrado" por Emacs:
  1. El archivo original que se encuentra en el disco.
  2. La copia del mismo archivo situada en el buffer.
Primeramente hay que reconocer una cosa: los cambios que hagamos en la copia del archivo situada en el buffer, no se veran reflejados en el archivo original hasta el momento en que Guardemos los cambios. Como cuando trabajamos normalmente con documentos, presentaciones u hojas de cálculo nuevos.

Los buffer también tienen nombres como los archivos. En ocasiones esos nombres resultan ser iguales a los de los archivos originales que se encuentra, copiados en dicho buffer. En este caso puede decirse que nos encontramos trabajando en un sistema buffer-archivo asociado. Sin embargom a veces no es asi.

¿A que se debe dicha situación? Muy sencillo... al hecho de que no hay ningún archivo asociado, o en otras palabras, no "encontro" un archivo original para copiarlo en el buffer.

En determinada situación podemos tener el caso del buffer "scratch". Cuando se abre Emacs, y no se abre un archivo existente, se nos proporciona el buffer ya mencionado anteriormente. Scratch es un buffer vacio, en el cual tenemos la opción de guardar el archivo con algún otro nombre.

Una vez que guardamos, el nombre Scratch es sustituido por el nombre del archivo que le indicamos al guardar.

Otro ejemplo de buffer temporal es el buffer "Help". Dicho buffer, sólo nos muestra los mensajes de ayuda.

Quizás se pregunten cómo podemos saber si estamos trabajando con la copia de un archivo o con un archivo temporal de algún buffer... o si trabajamos con un archivo original.

Es muy fácil saberlo. Cuando estamos trabajando en el buffer con un archivo temporal, el nombre se encuentra entre dos asteriscos (*-----*). Si gustan observar en una ocasión el Emacs, podrán comprobar lo que digo.

Espero que les sea de útilidad esta información sobre el Emacs al momento de trabajar con los archivos.

En lo personal, considero que es preferible trabajar con un archivo original, creado por nosotros mismos, ya que si sólo hacemos en el buffer, corremos el riesgo de perder lo ya elaborado.

Aqui les dejo el link donde localice los datos. También en el mismo sitio se encuentra más información de Emacs que puede ser de utilidad.

Saludos.

Bibliografía:

sábado, 7 de agosto de 2010

.: Tarea 1 :.

Intel vs AMDEnsambladores

:: Fundamentos de Lenguajes de Programacion ::


Materia: Lenguajes de Programación

Hora: Martes M1-M3


En la imagen que se puede apreciar en la parte superior, demuestro lo que para mi engloba (en cierta parte) lo que es la materia de "Programación".


Coloque dos Links dentro de la Imagen: uno se localiza en el recuadro que dice "CPU + RAM". Este vínculo muestra un foro donde se muestra las opiniones al respecto de las marcas más populares en la fabricación de microprocesadores.

El otro link se ubica en el recuadro que dice "Ensambladores". Dicha liga muestra una página que explica lo que son ensambladores.

Si no llegas a encontrar alguno de los links, puedes verlos en la parte final de este post.

Tocando algo del tema de los links, empezare por comentar algo sobre los procesadores. Nosotros aprendimos en la primer clase lo importante que es la RAM y el CPU al momento de programar. No se ustedes, pero al menos a mi me entro la pregunta: ¿Y cuál es el mejor procesador en la actualidad?

Comence a buscar algo de información, y las compañias Intel y AMD son las más vendidad a nivel mundial. Sin embargo, la competencia esta muy reñida, pues hay quienes prefieren AMD por precio y calidad. Otros dicen que Intel tiene mejor desempeño.

Una ocasion vi en un sitio que los AMD se sobrecalientan mucho más que los CPU Intel. Por desgracia no pude localizar ese dato de nuevo. Después de leer este foro, entre otros, llegue a una conclusión: Aun no hay una marca de procesadores dominantes. Mis bases se fundamentan en el hecho de la preferencia que tiene tanto AMD como Intel; es casi como decir que por cada persona que prefiere Intel, hay otra que prefiere AMD. Aun la competencia continua. Quizas en un futuro se defina una compañia lider.

Tocando el otro tema, que es "Ensambladores", puedo decir en sí lo que algunos sabemos: Son sólo programas o lenguajes de bajo nivel (como vi en una presentación) encargados de traducir un código fuente a lenguaje máquina. Actualmente ya no se usan tanto como en otros tiempos; sin embargo, aun suelen ser utilizados de vez en cuando. Es probable que proximamente postee un tema dedicado a "Ensambladores", aunque aun no tengo una fecha exacta.

PD. La calidad de la imagen no se porque, pero perdió algo de calidad. Si alguien desea saber como colocar links dentro de las imagenes, es posible que para el domingo 8 de agosto en la noche o para el lunes antes de las 12 del dia les pase un post con el dato de como se hace si es que no saben o les interesa. De cualquier manera si me sería un poco más provechoso saber que a alguien le interesa.

Saludos a todos!!! Buen día!!

01. Procesadores

02. Ensambladores