
BITACORA DEL EQUIPO 1
5.3.3
4.7.- PROCESO DE CREACIÓN DE UN EJECUTABLE
Normalmente la creación de un programa ejecutable (un típico .exe para Windows) conlleva dos pasos:
1.-El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel, (normalmente en código objeto no directamente al lenguaje máquina).
2.- El segundo paso se llama enlazado (del inglés link o linker) se junta el código de bajo nivel generado de todos los ficheros que se han mandado compilar y se añade el código de las funciones que hay el las bibliotecas del compilador para que el ejecutable pueda comunicarse con el sistemas operativo y traduce el código objeto a código máquina.
Estos dos pasos se pueden mandar hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico .obj para Microsoft Windows, .o para Unix), para enlazarlos posteriormente, o crear directamente el ejecutable con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes (generalmente C, C++ y Asm), que se podrían compilar de forma independiente y enlazar juntas para formar un único ejecutable.
Estructura básica de un programa en C
La mejor forma de aprender un lenguaje es programando con él. El programa más sencillo que se puede escribir en C es el siguiente:
main( )
{
}
Como nos podemos imaginar, este programa no hace nada, pero contiene la parte más importante de cualquier programa C y además, es el más pequeño que se puede escribir y que se compile correctamente. En el se define la función main, que es la que ejecuta el sistema operativo al llamar a un programa C. El nombre de una función C siempre va seguida de paréntesis, tanto si tiene argumentos como si no. La definición de la función está formada por un bloque de sentencias, que esta encerrado entre llaves {}.
todo programa sin embargo consta de:
1.-una cabeza o inicio
2.-la declaración de variables
3.-declaracion de sentencias u operaciones
4.- un fin
A continuación se muestra una pequeña tabla donde se ilustra el orden de prioridad:
OPERADOR | | PRIORIDAD |
^ | | Alta |
*, /, Div | | |
+, -, Mod | | |
Relaciones | | Baja |
Expresión postfija:
Ventajas:
Conversión postfija - infija
1.- Colocar todos los paréntesis de la expresión
2.- Reemplazar los paréntesis derechos con los operadores correspondientes
3.- Eliminar todos los paréntesis
Ejemplo:
A / B - C + D * E - A * C
1.- ( ( ( ( A / B ) - C ) + ( D * E ) ) - (A * C ) )
2.-( ( ( ( AB/C- (DE*+(AC*-
3.- AB/C- DE*+AC*-
Conversión infija - postfija
1.- Pasamos todos los operandos a la salida
2.- Almacenamos los operadores en una pila hasta que se tengan que pasar a la salida
Ejemplos
A + B * C => ABC*+
Siguiente token pila salida
------- vacía ---------
A vacía A
+ + A
B + AB
El algoritmo debe determinar si * ingresa a la pila o si se retira el +.
Como la prioridad de * es mayor se debe almacenar
* +* AB
C +* ABC
La expresión ha finalizado. Se retiran los operadores de la pila: ABC*+
*Operando:
Tabla: Operadores relacionales. | ||||||||||||||
|
Ejemplos:
Si a = 10, b = 20, c = 30
a + b > c | | Falso |
a - b <> | | Verdadero |
a - b = c | | Falso |
a * b < > c | | Verdadero |
4.3.1.- DEFINICION
Un identificador es el nombre utilizado para referenciar variables, constantes, tipos, funciones y otros objetos definidos por el usuraio.
Un identificador puede tener uno o mas caracteres (letras, digitos y caracter de subrayado), siendo significativos los primeros 32. Este tipo de datos son creados por el programador de acuerdo a sus necesidades de diseño.
Dentro de los identificadores se encuentran las constantes y las variables.
Constantes y variables;
Una constante es aquella que no cambia de valor durante la ejecucion de un programa, se representa en la forma descrita para cada categoría.
las Variables son aquellas que pueden modificar su valor durante la ejecución de un programa. Su representación se da a través de letras y símbolos generalmete de tipo numéricos a los que se les asigna un valor.
ejemplos:
| Constantes | Variables |
Numéricos | 36 450.35 0.58 | A Nom Edad Ciudad Estatura |
Cadena | ‘A’ ‘Juan’ ‘La Paz’ “capital” | |
Lógicos | Falso Verdadero |
*Sistema Binario:
Es el sistema digital por excelencia debido a su sencillez, aunque no el único. Su base es 2 y
Emplea 2 caracteres: 0 = desactivado y 1 = activado. Estos valores reciben el nombre de bits (dígitos binarios). Así, podemos decir que la cantidad 10011 está formada por 5 bits.
Este sistema es de especial importancia en la electrónica digital, donde sólo son posibles dos valores.
Está compuesto por 16 símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Su base es 16. Es uno de los sistemas más utilizados en electrónica, ya que además de simplificar la escritura de los números binarios, todos los números del sistema se pueden expresar en cuatro bits binarios al ser 16 = 24.
La conversión de un número hexadecimal a uno binario es muy sencilla al igual que en el sistema octal.
La conversión entre binario y hexadecimal es igual al de la conversión octal y binario, pero teniendo en cuenta los caracteres hexadecimales, ya que se tienen que agrupar de 4 en 4. La conversión de binario a hexadecimal se realiza según el ejemplo siguiente:
Sistema binario | Sistema Hexadecimal |
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | A |
1011 | B |
1100 | C |
1101 | D |
1110 | E |
1111 | F |
Ejemplo: 1011111,1100012
Agrupando obtenemos el siguiente resultado:
0101 1111, 1100 01002
Sustituyendo según la tabla logramos la conversión esperada:
4.2.1. DEFINICION DE PROGRAMA:
Es un conjunto de palabras, símbolos y reglas sintácticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema.
Estos lenguajes se clasifican en tres grandes categorías :
Lenguaje Máquina
Lenguaje de Bajo nivel (ensamblador)
Lenguaje de Alto nivel.
Son aquéllos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de caracteres de dígitos 0 y 1) que especifican una operación y las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina. El código máquina es el conocido código binario el cual esta estrechamente relacionado con el algebra booleana y las matematicas discretas.
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. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos.
- Por ejemplo, nemotécnicos típicos de operaciones aritméticas son : en inglés : ADD, SUB, DIV, etc. ; en español : SUM, RES, DIV, etc.
Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensambladores. 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.
actualmente, como estudiantes nosotros nos dedicamos principalmente al aprendizaje del uso de los lenguajes de alto nivel, especificamente los lenguajes orientados a objetos.
a continuación se muestra una lista de los lenguajes de alto nivel más importantes:
Antes que todo, es conveniente dar una defición general de software para poder introducirnos en este tema.
Ayudan a administrar y dar mantenimiento a la computadora, te ayudan a correr los diferentes programas, recuperar información, aumentar la eficiencia de la máquina y organizar la información del sistema. tales como la herramienta desfragmentadora de disco, o el skandisk, etc.
3.- APLICACIONES PERSONALES:Son programas diseñados para quitar lo tedioso a las tareas personales. Ej. el control de cheques, agenda de direcciones, operaciones bancarias, envío de correo electrónico, etc, se puede decir que son aplicaciones que se adaptan a las necesidades especificas de cada tipo de personas segun sus actividades.
4.- APLICACIONES DE ENTRETENIMIENTO:Aquí se encuentran todas las aplicaciones como los videojuegos, los cuales existen aquellos que vienen por defecto junto con el sistema operativo de la máquina, como cartablanca, solitario, buscaminas, etc. y aquellos que se pueden descargar de internet o comprarse, todos ellos son muy populares, especialmente entre la gente joven y los estudiantes.