martes, 30 de agosto de 2016

Lenguaje de interfaz: Resumen entre registros y lenguaje ensamblador

Registros de Banderas


Es un registro de 16 bits, de los cuales nueve sirven para indicar el estado actual de la máquina y el resultado del procesamiento. Muchas instrucciones aritméticas y de comparación cambian el estado de las banderas y apoyándose en ellas se pueden tomar decisiones para determinar la acción subsecuente.

La tabla contiene 16 posiciones (de 0 a 15), que son los 16 bits del registro de banderas, numeradas de derecha a izquierda. La posición 0 la encontraremos a la derecha y la posición 15 a la izquierda.





La instrucción esencial es MOV : Ella trasladan datos de un lugar a otro.
mov dest, src
mov eax, 3 ; almacena 3 en el registro EAX (3 es el operando inmediato)
mov bx, ax ; almacena el valor de AX en el registro BX


Registros para la instrucción MOV :
Registro AX: El registro AX es el registro acumulador, es utilizado para operaciones que implican entrada/salida, multiplicación y división (estas dos últimas en conjunto con el registro DX)
Registro BX: El registro BX es el registro base, y es el único registro de propósito general que puede ser un índice para direccionamiento indexado

CF (acarreo): Contiene el acarreo del bit de mayor orden después de una operación aritmética; también almacena el contenido del último bit en una operación de desplazamiento o de rotación.



La instrucción ADD se usa para sumar enteros.
add eax, 4 ; eax = eax + 4
add al, ah ; al = al + ah

Registros para la instrucción ADD :
ZF (cero):Indica el resultado de una operación aritmética o de comparación (0=resultado diferente de cero; 1=resultado igual a cero).

SF (signo): Contiene el signo resultante de una operación aritmética (0=positivo; 1=negativo).

Registro AX:
El registro AX es el registro acumulador, es utilizado para operaciones que implican entrada/salida, multiplicación y división (estas dos últimas en conjunto con el registro DX).

Registro DX: El registro DX es el registro de datos. En algunas operaciones se indica mediante este registro el número de puerto de entrada/salida, y en las operaciones de multiplicación y división de 16 bits se utiliza junto con el acumulador AX.


Las instrucciones INC y DEC incrementan o incrementan valores en uno.
inc ecx ; ecx++
dec dl ; dl--




Registros para las instrucciónes INC y DEC:

Registro CX: El registro CX es conocido como el registro contador. Puede contener un valor para controlar el número de veces que un ciclo se repite o un valor para corrimiento de bits.

DF (dirección):
Controla la selección de incremento o decremento de los registros SI y DI en las operaciones con cadenas de caracteres (1=decremento automático; 0=incremento). La bandera DF se controla con las instrucciones STD y CLD.

lunes, 29 de agosto de 2016

Lenguajes de Interfaz: Programas NASM, MASM y TASM.

NASM 

Nasm-IDE: Editor, compilador y enlazador, es compatible solo con nasm y Windows DOS.

Net Wide Assembler, es un ensamblador bajo licencia BSD para plataformas Intel x86, permite escribir programas en 16, 32, 64 bits. Es compatible para múltiples plataformas, entre ellas DOS, Windows y Linux.

NASM no se acompaña de un enlazador propio, aunque puede utilizarse cualquiera de distribución libre como es ALINK o bien, en el caso de Linux, usar el propio del sistema LINK.







MASM

SASM

SASM (SimpleASM) - sencillo IDE multiplataforma de código abierto para NASM, MASM, GAS, lenguajes ensamblador MASM.

SASM soporta 4 trabajar con montadores - NASM, MASM, gas y FASM en 2 modos -x64 y x86. Usted puede elegir el modo de configuración de la pestaña "Build". Tambiénallí se puede cambiar las opciones de ensamblador y enlazador y elegir programas para el montaje y la vinculación.



Masm: Es el ensamblador más usado en DOS y Windows, está desarrollado por la misma empresa que creó dichos sistemas Microsoft. Es bastante potente y puede utilizarse para crear programas DOS y Windows, así como bibliotecas y controladores de dispositivos. Como los demás ensambladores, MASM se invoca desde la línea de comandos directamente o, en caso de contar con él, desde un editor previa configuración.

Si utiliza MASM el enlazador será LINK.


RadASM

RadASM es un IDE freeware para ensambladores de 32 bits para Windows.

Ensambladores soportados:
MASM
FASM
NASM
HLA
GoAsm



WinAsm Studio


WinAsm Studio es un entorno de desarrollo integrado (IDE, Integrated development environment) para aplicaciones de 32 bits bajo Microsoft Windows y 16 bits bajo DOS, usando Microsoft Macro AssemblerMASM y Flat Assembler FASM. Su creador es Antonis Kyprianou (akyprian).

Fue desarrollado en lenguaje ensamblador, y está optimizado en tamaño y velocidad. Además soporta autocompletado para las funciones de la API de Windows y sus parámetros, lo que facilita el desarrollo rápido de aplicaciones. Es extensible mediante una completa interfaz de plugins, e incluye un poderoso editor visual de resources. Posee una interfaz de usuario multilenguaje, esto significa que puede configurarse para que toda la interfaz gráfica se muestre en el idioma de nuestra preferencia. Ya ha sido traducido a muchos idiomas, y nuevas traducciones son más que bienvenidas.

WinAsm Studio es 100% gratuito.
Ensambladores soportados
  • MASM
  • POASM
  • FASM [con complemento]


Easy Code


Este programa es un IDE o entorno de programación visual para desarrollar aplicaciones bajo lenguaje Assembler para plataformas windows de 32 bits.

Mediante esta interface se simplifica la programación bajo dicho lenguaje y contiene muchas herramientas de utilidad. El IDE es muy similar al de visual basic, donde encontrarás la barra de controles en la parte izquierda, el explorador de archivos de proyecto y la ventana de propiedades en la parte derecha, mientras que en el centro podrás diseñar las ventanas, con los controles y acceder al código fuente, como también probar y testear el programa.


Características de Easy Code Assembler:
  • Este entorno, está programado completamente en lenguaje Assembler. Esto lo hace muy rápido y veloz.
  • Se pueden programar ejecutables de32 bits.Con este entorno también, además de programas y aplicaciones, también es posible la programación de controladores y drivers de dispositivos. ( Ver el archivo de ayuda para mas información)
  • Programar librerías DLL, LIB.
  • Al escribir una función API o constante, el editor te ofrecerá ayuda contextual sobre las mismas. Esto facilita mucho la tarea de programación.
  • Incorpora editor de recursos.
  • Funciones básicas de un editor de programación, por ejemplo opciones para buscar, reemplazar etc ..
  • Permite resalte de sintaxis de las palabras clave ( Variables, funciones etc ..) de las palabras reservadas del código Assembler escritas en la ventana de código fuente.
  • Programar aplicaciones de consola.
  • Agregar recursos: Imágenes, cadenas, menú, aceleradores.
  • Incluye documentación y manual del IDE.
  • Incorpora un editor de menú.
  • Uso de controles comunes de windows : Botones, cajas de verificación, textbox, barras de scroll, frames, labels, combos, listbox, calendarios, imagelist, control slider, imagecombo, datetime, picture, image etc ..
  • Es completamente gratis ( Software libre - Incluye el código fuente del software).
  • Incluye completa documentación y archivo de ayuda en idioma español. Lo puedes acceder desde el menú Ayuda.


TASM

El Turbo Assembler (TASM), es un paquete ensamblador principalmente destinado a la plataforma del IBM PC y sus compatibles. 
Fue la oferta de Borland en el mercado de herramientas de programación en lenguaje ensamblador para la familia de los microprocesadores x86.
Turbo Assembler también se refiere a un ensamblador común, basado en el microprocesador 6502, creado por la compañía alemana Omikron en 1985. 

Las características de alto nivel de las ayudas de TASM 3.0 tales como objetos, permiten la implementación de la programación orientada a objetos. 

Turbo Assembler 2.0 

Turbo Assembler 3.01. Compilador de archivos escritos en lenguaje ensamblador. Es uno de los compiladores mas potente. 

Turbo Assembler 4.0.Compilador de archivos escritos en lenguaje ensamblador. Es uno de los compiladores mas potente. Incluye el enlazador (Tlink 4.0) y el depurador (Td).

Turbo Assembler 5.0. Es un completo ensamblador destacados independiente. Este producto incluye todas las herramientas necesarias para crear y depurar programas de montaje de 16 y 32 bits de DOS y Windows. Algunas de las herramientas incluidas son ensambladores, enlazadores, depuradores estilo de la consola, y los compiladores de recursos. 

TLINK El enlazador o linkeador permite combinar varios módulos objeto, realizando las conexiones entre ellos y, finalmente, los convierte en módulo ejecutable de tipo EXE 
El linkeador permite el uso de librerías de funciones y rutinas. TLINK, a diferencia de LINK, permite generar un fichero de tipo COM directamente de un OBJ si se indica el parámetro  lo que agiliza aún más el proceso.


Para TASM el correspondiente enlazador es TLINK.



Administración de bases de datos: Comandos MYSQL


Definiendo cómo es almacenada la información.


CREATE DATABASE se utiliza para crear una nueva base de datos vacía.

DROP DATABASE se utiliza para eliminar completamente una base de datos existente.

CREATE TABLE se utiliza para crear una nueva tabla, donde la información se almacena realmente.

ALTER TABLE se utiliza para modificar una tabla ya existente.

DROP TABLE se utiliza para eliminar por completo una tabla existente.

Manipulando los datos.

SELECT se utiliza cuando quieres leer (o seleccionar) tus datos.

INSERT se utiliza cuando quieres añadir (o insertar) nuevos datos.

UPDATE se utiliza cuando quieres cambiar (o actualizar) datos existentes.

DELETE se utiliza cuando quieres eliminar (o borrar) datos existentes.

REPLACE se utiliza cuando quieres añadir o cambiar (o reemplazar) datos nuevos o ya existentes.

TRUNCATE se utiliza cuando quieres vaciar (o borrar) todos los datos de la plantilla.

jueves, 25 de agosto de 2016

Administración de bases de datos: Introducción a MYSQL

CREAR BASE DE DATOS Y USUARIO EN MYSQL

En nombre del post era más largo, era así:

Crear base de datos y usuario con todos los permisos sobre esa y sólo sobre esa base de datos en MySQL.

Siempre paso haciendo ésto, pero por más que lo haga una y otra vez siempre se me olvida el SQL de los permisos, por eso lo pongo acá para estar acordándome.
Primero, iniciamos una sesión de shell:
mysql -u root -p
(En humano dice: Inicie MySQL como el usuario root y pregúnteme el password).
Luego creamos la base de datos (en éste caso llamada exampledb):
mysql> CREATE DATABASE exampledb;
Ahora creamos un usuario y le damos todos los permisos sobre esa base de datos (todo en un mismo paso; la creación del usuario no es explícita pero se lleva a cabo):
mysql> GRANT ALL PRIVILEGES ON exampledb.* TO 'usuario'@'localhost' IDENTIFIED BY 'clave';
Claro, cambiamos ‘exampledb’, ‘usuario’ y ‘clave’ por los valores reales. Podemos dejar las comillas simples, es recomendado

miércoles, 24 de agosto de 2016

Administración de bases de datos: DBMS libres y comerciales


Libres

PostgreSQL: es un servidor de base de datos relacional libre, liberado bajo la licencia BSD. Es una alternativa a otros sistemas de bases de datos de código abierto (como MySQL, Firebird y MaxDB), así como sistemas propietarios como Oracle o DB2.

Algunas de sus principales características son:
Claves ajenas también denominadas Llaves ajenas o Llaves Foráneas (foreign keys).
Disparadores (triggers).
Vistas.
Integridad transaccional.
Acceso concurrente multiversión (no se bloquean las tablas, ni siquiera las filas, cuando un proceso escribe).
Capacidad de albergar programas en el servidor en varios lenguajes.
Herencia de tablas.
Tipos de datos y operaciones geométricas.

MySQL: es uno de los Sistemas Gestores de bases de Datos (SQL) más populares desarrolladas bajo la filosofía de código abierto. La desarrolla y mantiene la empresa MySQL AB pero puede utilizarse gratuitamente y sucódigo fuente está disponible.

Algunas de sus características son :
Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente.
Disponibilidad en gran cantidad de plataformas y sistemas.
Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles.
Transacciones y claves foráneas.
Conectividad segura.
Replicación.
Búsqueda e indexación de campos de texto.

Firebird: es un sistema de administración de base de datos (o RDBMS) de código abierto, basado en la versión 6 de Interbase, cuyo código fue liberado por Borland en 1999. Su código fue reescrito de C a C++.

Algunas de sus características:
Ejecutable pequeño, con requerimientos de hardware bajos.
Arquitectura Cliente / Servidor sobre protocolo TCP/IP y otros (embedded).
Soporte de transacciones y claves foráneas.
Es medianamente escalable.
Buena seguridad basada en usuarios / roles.
Bases de datos de sólo lectura, para aplicaciones que corran desde dispositivos sin capacidad de escritura, como cd-roms.
Existencia de controladores ODBC, OLEDB y JDBC
Controlador nativo para PHP
Requisitos de administración bajos, siendo considerada como una base de datos libre de mantenimiento, al margen de la realización de copias de seguridad y restauraciones periódicas.
Pleno soporte del estándar SQL-92, tanto de sintaxis como de tipos de datos.

Comerciales
Informix: es conocido actualmente como una categoría de programas de IBM, que esta dentro de la familia de "Administración de Información" (Information Management). En el año 2001 IBM compró a la empresa Informix Inc. por aproximadamente 1.000 millones de dólares. Informix es también conocido por ser un Gestor de base de datos, ahora llamado "Informix Dynamic Server" (IDS). Incluye un RDBMS basado en SQL, un lenguaje de cuarta generación y juegos de herramientas para la inclusión del SQL en programas de aplicación.
algunas de sus características son:
Utiliza plataforma Windows 2000, 2003 Server, XP y UNIX (AIX, HP-UX, IRIX, Linux, Solaris y TRU64) .
Dispone de herramientas gráficas que permiten asistir tanto en los procesos de instalación como la administración del servidor, sin necesidad de que el administrador tenga grandes conocimientos.
Proporciona tablas que forma el SMI(interfaz de monitorización del sistema).
Gestiona múltiples base de datos remotas de una única y centralizada consola donde se muestran gráficamente tanto la base de datos, como los objetos que contiene (tablas, índices, procedimientos).
Tiene la capacidad de relación de datos en múltiples lugares físicos.
Ofrece varias opciones para conectar datos relacionales en páginas web.
Ocupa menos memoria y recursos que el Oracle.
Se integra con Linux, Oracle y otras bases de datos.
Ofrece herramientas para crear menús, formularios de entrada de datos y generadores de listados.
Soporte para Datawarehouse
Soporte para Datamining

Microsoft Access
: es un sistema de gestión de bases de datos creado y modificado por Microsoft (DBMS) para uso personal o de pequeñas organizaciones. Es un componente de la suite Microsoft Office aunque no se incluye en el paquete básico. Para bases de datos de gran calibre (en cuanto a volumen de datos o de usuarios) es recomendable usar otros sistemas como Microsoft SQL Server, MySQL, Postgres u Oracle. Su principal función es ser una potente base de datos, capaz de trabajar en sí misma o bien con conexión hacia otros lenguajes de programación, tales como Visual Basic 6.0 o Visual Basic .NET. Pueden realizarse consultas directas a las tablas contenidas mediante instrucciones SQL. Internamente trae consigo el lenguaje Visual Basic for Application (VBA) el cual es similar en forma a VB6.

Algunas de sus características son:
Crear tablas de datos indexadas.
Modificar tablas de datos.
Relaciones entre tablas (creación de bases de datos relacionales).
Creación de consultas y vistas.
Consultas referencias cruzadas.
Consultas de acción (INSERT, DELETE, UPDATE).
Formularios.
Informes.
Llamadas a la API de windows.
Interacción con otras aplicaciones que usen VBA (resto de aplicaciones de Microsoft Office, Autocad, etc.).
Macros.

Microsoft SQL Server: es un sistema de gestión de bases de datos relacionales (SGBD) basada en el lenguaje SQL, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea.
Entre sus características figuran:
Soporte de transacciones.
Gran estabilidad.
Gran seguridad.
Escalabilidad.
Soporta procedimientos almacenados.
Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
Permite trabajar en modo cliente-servidor donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo accesan a la información.
Además permite administrar información de otros servidores de datos

Administración de base de datos: Funciones de un DBA

Un administrador de bases de datos es un profesional en procesamiento de datos. La tarea del DBA es crear la base de datos en sí y poner en vigor los controles técnicos necesarios para apoyar las políticas dictadas por el administrador de datos. El DBA se encarga también de garantizar el funcionamiento adecuado del sistema y de proporcionar otros servicios de índole técnica relacionados. El DBA cuenta por lo regular con un grupo de programadores de sistemas y otros asistentes técnicos.La responsabilidad general del DBA es facilitar el desarrollo y el uso de la Base de Datos dentro de las guías de acción definidas por la administración de los datos.
El DBA es responsable primordialmente de:
  • Administrar la estructura de la Base de Datos
  • Administrar la actividad de los datos
  • Administrar el Sistema Manejador de Base de Datos
  • Establecer el Diccionario de Datos
  • Asegurar la confiabilidad de la Base de Datos
  • Confirmar la seguridad de la Base de Datos

Lenguajes de interfaz: Tipos de lenguajes de programación



Lenguaje de bajo nivel: Es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina. En general se utiliza este tipo de lenguaje para programar controladores (drivers).

Ventajas

  • Mayor adaptación al equipo.
  • Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.
  • Inconvenientes
  • Imposibilidad de escribir código independiente de la máquina.
  • Mayor dificultad en la programación y en la comprensión de los programas.
  • El programador debe conocer más de un centenar de instrucciones.
  • Es necesario conocer en detalle la arquitectura de la máquina.

Características
  • Se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle.
  • Está orientado a la máquina.

Lenguaje de medio nivel: Es un lenguaje de programación informática como el lenguaje C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel.

Suelen ser clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.

Una característica distintiva, por ejemplo, que convierte a C en un lenguaje de medio nivel y al Pascal en un lenguaje de alto nivel es que en el primero es posible manejar las letras como si fueran números (en Pascal no), y por el contrario en Pascal es posible concatenar las cadenas de caracteres con el operador suma y copiarlas con la asignación (en C es el usuario el responsable de llamar a las funciones correspondientes).

Una de las características más peculiares del lenguaje de programación C; es el uso de "apuntadores", los cuales son muy útiles en la implementación de algoritmos como Listas ligadas, Tablas Hash y algoritmos de búsqueda y ordenamiento que para otros lenguajes de programación (como Java por ejemplo) les suele ser un poco más complicado implementar

Los lenguajes de alto nivel: Se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas.

En los primeros lenguajes de alto nivel la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales.

Otra limitación de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas.

Los lenguajes de muy alto nivel se crearon para que el usuario común pudiese solucionar tal problema de procesamiento de datos de una manera más fácil y rápida.
Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman "de tercera generación" o "de alto nivel", en contraposición a los "de bajo nivel" o "de nivel próximo a la máquina".

Ventajas

  • La programación en un lenguaje de alto nivel tiene ciertas ventajas:
  • Genera un código más sencillo y comprensible.
  • Escribir un código válido para diversas máquinas y, posiblemente, sistemas operativos.

Inconvenientes
  • Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.
  • Algunos requieren que la máquina cliente posea una determinada plataforma.

Objetivos

Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador, que lo suministra el fabricante, para obtener el programa ejecutable en lenguaje binario de la máquina que se trate. Además, no se necesita conocer el hardware específico de dicha máquina.
Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje máquina, ya que se utilizan palabras (en inglés) en lugar de cadenas de símbolos sin ningún significado aparente.
Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemáticas, manejo de tablas, etc., que figuran en una especie de librería del lenguaje, de tal manera que se pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez.

Lenguajes de bajo nivel
  • Código máquina
  • Ensamblador

Lenguajes de medio nivel
  • BCPL
  • C

Lenguajes de alto nivel
  • ADA
  • ALGOL
  • BASIC
  • Clipper
  • Cobol
  • C++
  • FORTH
  • Fortran
  • Haskell
  • Informix 4gl
  • Java
  • Léxico (con códigos en castellano o sinónimos en otros idiomas)
  • Lisp
  • Logo
  • Modula
  • PASCAL
  • Prolog
  • RPG
  • Visual Basic

Lenguajes de interfaz: Programa fuente

Es una noción que se emplea como sinónimo de código fuente. Se trata de las instrucciones que un programa informático transmite a una computadora para que pueda ejecutarse. Dichas instrucciones son líneas de texto escritas en un lenguaje de programación (una estructura capaz de impartir instrucciones informáticas a partir de una determinada base semántica y sintáctica).




Puede decirse que, en el programa fuente, un software detalla la totalidad de su funcionamiento. Un programador es quien desarrolla dichas instrucciones, respetando los principios del lenguaje de programación elegido. El sistema en cuestión, al acceder al programa fuente, interpreta las instrucciones y las pone en marcha.
Hay que destacar que el programa fuente no es interpretado de manera directa por el hardware: las instrucciones son traducidas a un lenguaje diferente, que el hardware sí está en condiciones de ejecutar. El proceso de traducción se desarrolla mediante intérpretes, ensambladores y compiladores, entre diferentes sistemas de traducción.



Lenguajes de interfaz: Definición de compiladores

Un compilador es un programa informático, que se encarga de traducir el código fuente de una aplicación que este en desarrollo, es decir convierte un programa hecho en lenguaje de programación de alto nivel a un lenguaje de máquina , el cual es conocido como de bajo nivel, de tal forma que sea  más entendible y mucho más fácil de procesar en el equipo en el que se esta ejecutando.
De igual manera un traductor es el que toma como entrada un texto escrito y da como salida otro texto en un lenguaje llamado objeto.







Lenguajes de interfaz: Definición de lenguaje máquina

El lenguaje máquina es el único lenguaje que puede ejecutar una computadora, es específico en cada arquitectura, es un código que es interpretado directamente por el microprocesador, está compuesto por un conjunto de instrucciones ejecutadas en secuencia que representan acciones que la máquina podrá tomar.

El lenguaje máquina es el único que entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos únicos símbolos 0 y 1, denominados bits; físicamente, se materializan con tensiones comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para representar datos que contengan una información se utilizan una serie de unos y ceros cuyo conjunto indica dicha información.

Todo código fuente en última instancia debe llevarse a un lenguaje máquina mediante el proceso de compilación o interpretación para que la computadora pueda ejecutarlo.
Las instrucciones preparadas en cualquier lenguaje de máquina tienen por lo menos dos partes, el comando u operación, que dice a la computadora cuál es la función que va a realizar y la instrucción es el operando, que indica a la computadora donde hallar o almacenar los datos y otras instrucciones que se van a manipular; el número de operandos de una instrucción varía en las distintas computadoras, una instrucción en lenguaje máquina puede, por ejemplo, representarse de la siguiente forma:
011011001010010011110110
Esta secuencia es fácilmente ejecutada por la computadora, pero es de difícil interpretación, siendo aun más difícil la interpretación de un programa escrito de esta forma, esta dificultad hace que los errores sean frecuentes y la corrección de los mismos costosa, cuando no imposible, al igual que la verificación y modificación de los programas.
Como se puede observar, estas instrucciones serán fáciles de leer por la computadora y difíciles por un programador, y viceversa, esta razón hace difícil escribir programas en código o lenguaje a máquina y requiere buscar otro lenguaje para comunicarse con la computadora, pero que sea más fácil de escribir y leer por el programador. Para evitar la tediosa tarea de escribir programas en lenguaje maquina, se han diseñado otros lenguajes de programación que facilitan la escritura y posterior ejecución de los programas.

Ventajas del Lenguaje Máquina
  • Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación.
Desventajas del Lenguaje Máquina
  • Dificultad y lentitud en la codificación.
  • Poca fiabilidad.
  • Gran dificultad para verificar y poner a punto los programas.
  • Los programas solo son ejecutables en el mismo procesador (CPU).

TEMARIOS


martes, 23 de agosto de 2016

Administración de base de datos: Sistema gestor de base de datos(SGBD)


Es el software que permite la utilización y/o la actualización de los datos almacenados en una (o varias) base(s) de datos por uno o varios usuarios desde diferentes puntos de vista y a la vez, se denomina sistema de gestión de bases de datos (SGBD).
El objetivo fundamental de un SGBD consiste en suministrar al usuario las herramientas que le permitan manipular, en términos abstractos, los datos, o sea, de forma que no le sea necesario conocer el modo de almacenamiento de los datos en la computadora, ni el método de acceso empleado.
Los programas de aplicación operan sobre los datos almacenados en la base utilizando las facilidades que brindan los SGBD, los que, en la mayoría de los casos, poseen lenguajes especiales de manipulación de la información que facilitan el trabajo de los usuarios.
Los SGDB brindan facilidad a la hora de elaborar tablas y establecer relaciones entre las informaciones contenidas en ellas. Pueden mantener la integridad de una base de datos permitiéndole a más de un usuario actualizar un registro al mismo tiempo y también puede impedir registros duplicados en una BD.
Características de los SGBD
-Permite crear y gestionar base de datos de forma fácil, cómoda y rápida.
-Ofrece una gran flexibilidad para el trabajo con base de datos relacionales.
-Ofrece un ambiente agradable dado por su interfaz gráfica.
En este caso el utilizado es phpMyAdmin.
PHPMyAdmin
Para administrar la base de datos, se utiliza la interfaz Web phpMyAdmin, que es bastante potente, amigable y una de las más extendidas.
PHPMyAdmin es un programa de libre distribución en PHP. Es una herramienta muy completa que permite acceder a todas las funciones típicas de la base de datos MySQL a través de una interfaz Web muy intuitiva.
Para que nos funcione, debemos tener configurado el soporte php e instalado MySql.
Además proporciona una gran variedad de herramientas que facilita mucho la administración de bases de datos.
La aplicación en si no es más que un conjunto de archivos escritos en PHP que podemos copiar en un directorio de nuestro servidor Web, de modo que, cuando accedemos a esos archivos, nos muestran unas páginas donde podemos encontrar las bases de datos a las que tenemos acceso en nuestro servidor de bases de datos y todas sus tablas. La herramienta nos permite crear tablas, examinarlas, filtrar y buscar registros, insertar y actualizar datos en las tablas existentes, ver y gestionar los registros de las tablas, editarlos y borrarlos, borrar tablas, ver las sentencias necesarias para incluirlas en desarrollos PHP, etc., incluso podemos ejecutar sentencias SQL y hacer backups de la base de datos. La página de inicio del programa también ofrece la posibilidad de ver un demo online, aunque nos avisan de que el servidor donde se aloja puede estar caído.
phpMyAdmin es un proyecto escrito en PHP, por lo que necesitaremos colocar los archivos en un servidor Web que permita programación de páginas PHP. Además, se debe acceder a la herramienta a través de la dirección del servidor Web, Por ejemplo en este caso la carpeta phpMyAdmin se encuentra ubicada en “/srv/www/htdocs”, la cual es la carpeta de publicación del servidor web Apache 2 que se encuentra instalado en el servidor.
Características de PHPMyAdmin
Para que nos funcione. Se debe tener configurado el soporte php einstalado MySQL.

-Permite a través de la opción estructura mostrar todo lo referente a la base de datos, mostrándose aquí todas las tablas ,registros, tipos de tablas y tamaño de la tabla.

-Permite realizar consultas SQL
-Una de las mejores utilidades, es la capacidad de exportar e importar información de un modo sencillo y remoto
-Permite buscar dentro de alguna de las tablas o todas las tablas de la base de datos algún dato que se desee buscar, por palabras, frases o expresión regular.
- Para ejecutar una consulta se selecciona la tabla o las tablas a las que se le desee realizar la consulta, se ubica el campo o los campos, y luego se presiona el botón ejecutar la consulta. También esta la opción de modificar consulta.
- Las operaciones dan las opciones de crear una nueva tabla dentro de la base de datos. Así como cambiar el nombre a la base de datos y copiar la base de datos.
-También cuenta con la opción de examinar que te da a ver todos los datos en cada fila y columna de la tabla y así poder verificar su estado.
-Insertar te permite agregar y hacer modificaciones a la tabla.
-Así como eliminar y vaciar que se utilizan para borrar registros y campos de las tablas.
Por lo que gracias a esta sencilla y potente herramienta, podemos administrar nuestro servidor MySQL de forma rápida, eficaz y cómoda, desde páginas web que nos presentan todas las opciones que precisamos para mantener y gestionar nuestras bases de datos y tablas.




Lenguaje de interfaz: IDE'S para ensamblador

WinAsm Studio

WinAsm Studio es un entorno de desarrollo integrado (IDE) gratuito para desarrollar programas en Windows 32-bit y DOS 16-bit utilizando Microsoft Macro Assembler MASM y FASM utilizando el Add-In para FASM. Ha sido escrito por Antonis Kyprianou (akyprian).


Easy Code


Entorno visual de desarrollo en lenguaje ensamblador. Easy Code es el entorno visual de programación en ensamblador hecho para generar aplicaciones de 32 bits para Windows. La interfaz de Easy Code, muy parecida a la de Visual Basic, le permite programar una aplicación en ensamblador de manera rápida y fácil como nunca antes había sido posible.


RadASM


RadASM es un IDE gratuito para ensambladores de 32 bits para Windows.
Soporta masm, tasm, fasm, nasm, goasm y hla.


SASM: es un IDE para MASM, NASM, FASM y GAS. SASM tiene un marcador y debuger de sintaxis. Sirve para aprender a programar en ensamblador.

Lenguaje de Interfaz: Lenguaje ensamblador

El lenguaje ensamblador, o assembler (assembly language en inglés), es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador.

1950 : Invención del lenguaje ensamblador por Mauricio V. Wilkes de la Universidad de Cambridge. Antes, la programación se efectuaba en binario directamente.
Se puede usar el Microsoft Macro Assembler para programar en ensamblador.



Importancia del lenguaje ensamblador


La importancia del lenguaje ensamblador radica principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en el se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria.



Características



El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje máquina, es decir, es un lenguaje de bajo nivel.
El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra máquina distinta. Al cambiar a una máquina con arquitectura diferente, generalmente es necesario reescribirlo completamente.
Los programas hechos por un programador experto en lenguaje ensamblador son generalmente mucho más rápidos y consumen menos recursos del sistema (memoria RAM y ROM) que el programa equivalente compilado desde un lenguaje de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están disponibles en los lenguajes de alto nivel.
También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecución.

Ventajas


1. .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa mas rápido.


2. Eficiencia de tamaño .- Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan librerías y demás como son los lenguajes de alto nivel


3. Flexibilidad .- Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al máximo los recursos de la máquina. O sea que en lenguaje ensamblador se pueden hacer tareas específicas que en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas limitantes que no se lo permite.



Desventajas


Tiempo de programación .- Como es un lenguaje de bajo nivel requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel. Por otro lado, requiere de más cuidado por parte del programador, pues es propenso a que los errores de lógica se reflejen más fuertemente en la ejecución.


Programas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores.


Peligro de afectar recursos inesperadamente .- Que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la maquina, programar en este lenguaje lo más común que pueda pasar es que la máquina se bloquee o se reinicialice. Porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones inválidas, que normalmente no aparecen al usar un lenguaje de alto nivel.


Falta de portabilidad.- Porque para cada máquina existe un lenguaje ensamblador; por ello, evidentemente no es una selección apropiada de lenguaje cuando deseamos codificar en una máquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras.