0% encontró este documento útil (0 votos)
9 vistas29 páginas

Pe 01 Intro Imp

El documento presenta una introducción a los sistemas de cómputo, herramientas de desarrollo y la programación en lenguaje C. Se abordan conceptos clave como la arquitectura de sistemas, mecanismos de ejecución, lenguajes de máquina y traductores, así como la programación estructurada. También se describen herramientas de desarrollo en diferentes sistemas operativos y se proporciona un ejemplo de un programa simple en C.

Cargado por

amorenonp
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas29 páginas

Pe 01 Intro Imp

El documento presenta una introducción a los sistemas de cómputo, herramientas de desarrollo y la programación en lenguaje C. Se abordan conceptos clave como la arquitectura de sistemas, mecanismos de ejecución, lenguajes de máquina y traductores, así como la programación estructurada. También se describen herramientas de desarrollo en diferentes sistemas operativos y se proporciona un ejemplo de un programa simple en C.

Cargado por

amorenonp
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 29

Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Programación Estructurada
Introducción

Oscar Alvarado Nava


[email protected]
Departamento de Electrónica
División de Ciencias Básicas e Ingenierı́a
Universidad Autónoma Metropolitana, Unidad Azcapotzalco

15-Otoño, septiembre de 2015

Oscar Alvarado Nava UAM Azcapotzalco Introducción 1/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Contenido

1 Sistemas de cómputo
Sistemas en capas
Mecanismo de ejecución
Lenguajes de la máquina
Traductores

2 Herramientas de desarrollo
IDEs y sistemas operativos
WinSSH

3 Primer programa en lenguaje C


Compilación

Oscar Alvarado Nava UAM Azcapotzalco Introducción 2/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Sistemas en capas

Sistema de cómputo en capas

Aplicaciones:
científico, negocios, oficina, juegos

Traductores
y herramientas de desarrollo
Software
Sistema operativo:
procesos, hilos, bibliotecas

Arquitectura:
conjunto de instrucciones

Micro arquitectura:
ruta de datos unidad de control

Lógico:
compuertas, unidades funcionales Hardware

Físico:
resistencias, transistores, etc.

Oscar Alvarado Nava UAM Azcapotzalco Introducción 3/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Mecanismo de ejecución

Elementos de un sistema de cómputo

Modelo de Von Newmann para ejecución de programas


CPU (Central Processing Unit): unidad de control, registros y
ALU
RAM (Random Access Memory )
Sistema de buses
Periféricos de entrada/salida

Oscar Alvarado Nava UAM Azcapotzalco Introducción 4/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Mecanismo de ejecución

Mecanismo de ejecución

RAM

100010100111
001010100110
101010101110

100101100110
111000011111

001111100010

111110100000
sistema
operativo

CPU
pc
001010100110 ir
Control
ALU

HD
encabezado

100010100111
001010100110
101010101110

100101100110
111000011111

001111100010

111110100000

Oscar Alvarado Nava UAM Azcapotzalco Introducción 5/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Lenguajes de la máquina

Lenguaje máquina: CPU Intel x86

1
2
3
4
5 01010101000000000000000000000000
6 10001001111001010000000000000000
7 10000011111011000001000000000000
8 11000111010001011111110000001111
9 11000111010001011111100000001001
10 11000111010001011111010000000000
11 10001011010001011111100000000000
12 10001011010101011111110000000000
13 00000001110100000000000000000000
14 10001011010001011111010000000000
15 10111000000000000000000000000000
16 11001001000000000000000000000000
17
18 11000011000000000000000000000000

Oscar Alvarado Nava UAM Azcapotzalco Introducción 6/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Lenguajes de la máquina

Lenguaje ensamblador: CPU Intel x86

1 .file “suma.c” ;archivo


2 .text ;seccion de texto
3 .globl main ;simbolo global
4 main: .cfi startproc
5 push %ebp ;libera pila
6 mov %esp, %ebp
7 sub $16, %esp
8 movl $15, -4( %ebp)
9 movl $9, -8( %ebp)
10 movl $0, -12( %ebp)
11 mov -8( %ebp), %eax ;carga en registro op1
12 mov -4( %ebp), %edx ;carga en registro op2
13 add %edx, %eax ;suma de datos
14 mov %eax, -12( %ebp) ;almacena resultado
15 mov $0, %eax ;valor de regreso
16 leave ;fin de modulo
17 .cfi restore
18 ret

Oscar Alvarado Nava UAM Azcapotzalco Introducción 7/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Lenguajes de la máquina

Lenguaje de alto nivel: lenguaje C

1 int main()
2 {
3 int x=15;
4 int y=9;
5 int z=0;
6
7 z = x + y;
8
9 return 0;
10 }

Oscar Alvarado Nava UAM Azcapotzalco Introducción 8/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Traductores

Lenguaje máquina

Los sistemas de cómputo trabajan en lenguaje máquina


Secuencias de 1 y 0, también conocidos como código binario
También son representados en códigos que son potencia de
dos: octal y hexadecimal
Difı́ciles de leer y escribir para los humanos
El programador debe de ser conciente de cómo funciona el
sistema de cómputo

Oscar Alvarado Nava UAM Azcapotzalco Introducción 9/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Traductores

Lenguaje de alto nivel

Actualmente para la implementación de programas se utilizan


lenguajes de alto nivel
Alto nivel de abstracción
Son más fáciles de utilizar ya que el programador se abstrae
del funcionamiento del sistema de cómputo
Es necesaria una traducción

Oscar Alvarado Nava UAM Azcapotzalco Introducción 10/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Traductores

Traductores

Un traductor traduce un programa escrito en un lenguaje de


programación a otro
El objetivo es generar un programa funcionalemente
equivalente que la máquina sea capaz de interpretar

Oscar Alvarado Nava UAM Azcapotzalco Introducción 11/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Traductores

Proceso de traducción
High-level swap(int v[], int k)
language {int temp;
program temp = v[k];
(in C) v[k] = v[k+1];
v[k+1] = temp;
}

C compiler

Assembly swap:
language muli $2, $5,4
program add $2, $4,$2
(for MIPS) lw $15, 0($2)
lw $16, 4($2)
sw $16, 0($2)
sw $15, 4($2)
jr $31

Assembler

Binary machine 00000000101000010000000000011000


language 00000000100011100001100000100001
program 10001100011000100000000000000000
(for MIPS) 10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
00000011111000000000000000001000

Oscar Alvarado Nava UAM Azcapotzalco Introducción 12/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Traductores

Paradigmas de programación

Paradigma de programación es una propuesta de reglas que es


adoptada por una comunidad de programadores cuyo núcleo
central es incuestionable
Imperativo, por procedimientos o estructurada
Funcional
Lógico
Declarativo
Orientado a objetos

Oscar Alvarado Nava UAM Azcapotzalco Introducción 13/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Traductores

Programación estructurada

La programación estructurada es una técnica para escribir


programas, la cual únicamente utiliza tres estructuras
Secuencia, selección e iteración

Oscar Alvarado Nava UAM Azcapotzalco Introducción 14/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

IDEs y sistemas operativos

Herramientas de desarrollo en Winbugs

Se pueden utilizar clientes para acceso a servidores UNIX


SSH secure shell client
IDEs (Integrated Development Environment)
DevC++
Eclipse
Visual Studio Express

Oscar Alvarado Nava UAM Azcapotzalco Introducción 15/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

IDEs y sistemas operativos

Herramientas de desarrollo en Linux

En cualquier distribución de Linux (Debian, Ubuntu, fedora,


etc.) se pueden instalar las herramientas de desarrollo
Editores de texto sin marcas (nano, gedit, vim, etc.), el
compilador GCC y las bibliotecas estándar
Taller demostrativo de instalación, 22 de septiembre

Oscar Alvarado Nava UAM Azcapotzalco Introducción 16/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

IDEs y sistemas operativos

Máquina virtual de Linux sobre Windows

Máquina virtual para Windows host


http://www.virtualbox.org
Disco duro con Ubuntu 15.4
http://bt0.ninja/ubuntu154.zip (2 GB)
Taller demostrativo de instalación, 22 de septiembre

Oscar Alvarado Nava UAM Azcapotzalco Introducción 17/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

WinSSH

SSH secure shell client

Disponible en:
http://mirrors.azc.uam.mx/mirrors/ftp.ssh.com/SSHSecureShellClient-3.2.9.exe

Conexión a un servidor UNIX/Linux a través de un cliente


Se requiere una cuenta de acceso: user name y password
Conexión al servidor:
ce.azc.uam.mx

Oscar Alvarado Nava UAM Azcapotzalco Introducción 18/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

WinSSH

SSH secure shell client

Oscar Alvarado Nava UAM Azcapotzalco Introducción 19/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

WinSSH

Acceso con Quick Connect

Oscar Alvarado Nava UAM Azcapotzalco Introducción 20/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

WinSSH

Ingresar hostname y username

Oscar Alvarado Nava UAM Azcapotzalco Introducción 21/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

WinSSH

Ingresar password

Oscar Alvarado Nava UAM Azcapotzalco Introducción 22/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

WinSSH

Acceso aceptado

Oscar Alvarado Nava UAM Azcapotzalco Introducción 23/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Compilación

Hola mundo en lenguaje C

1 /* Programacion estructurada
2 Oscar Alvarado Nava , 15 O
3 Programa : Hola Mundo
4 Muestra un mensaje en la salida estandar
5 */
6 # include < stdio .h > /* archivo encabezado */
7
8 int main () /* funcion principal de tipo entero */
9 {
10 printf ( " Hola Mundo !!\ n " ) ; /* funcion de biblioteca */
11
12 return 0; // regresa el valor de cero
13 }

Oscar Alvarado Nava UAM Azcapotzalco Introducción 24/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Compilación

Obtener código del programa

< tss-7-01@ce >


< /users/tss/7/tss-7-01 >
$ /usr/sfw/bin/wget ce.azc.uam.mx/profesores/oalvarado/pe/holaMundo.c

Oscar Alvarado Nava UAM Azcapotzalco Introducción 25/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Compilación

Visualizar el código del programa

< tss-7-01@ce >


< /users/tss/7/tss-7-01 >
$ cat holaMundo.c

Oscar Alvarado Nava UAM Azcapotzalco Introducción 26/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Compilación

Compilación del programa

< tss-7-01@ce >


< /users/tss/7/tss-7-01 >
$ gcc holaMundo.c -o holaMundo

Oscar Alvarado Nava UAM Azcapotzalco Introducción 27/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Compilación

Ejecución del programa

< tss-7-01@ce >


< /users/tss/7/tss-7-01 >
$ ./holaMundo
Hola Mundo!!

Oscar Alvarado Nava UAM Azcapotzalco Introducción 28/29


Sistemas de cómputo Herramientas de desarrollo Primer programa en lenguaje C

Compilación

Terminación de sesión

< tss-7-01@ce >


< /users/tss/7/tss-7-01 >
$ exit

Oscar Alvarado Nava UAM Azcapotzalco Introducción 29/29

También podría gustarte