Autor
|
Tema: ¿Qué quiere decir "...permite al programador abstraerse de la capa hardware"? (Leído 2,798 veces)
|
theluigy13etv
Desconectado
Mensajes: 179
Primero se hace, después se mejora
|
El lenguaje C es fruto de un lenguaje de programación anterior, el lenguaje B, desarrollado por Ken Thompson, en los Laboratorios Bell en 1970, con la idea de recodificar el sistema operativo UNIX que, hasta esa fecha, se programaba directamente en ensamblador, con el inconveniente de estar vinculado a máquinas concretas (según el juego de instrucciones de cada máquina). Por tanto, se hacía necesario un lenguaje que permitiese al programador abstraerse de la capa hardware y conseguir una mayor portabilidad del código, algo que se realizó en B (basándose en el BCPL de Martin Richard de 1967). Siempre, en todos los textos que traten acerca del lenguaje C, encuentro que hacen referencias al lenguaje ensamblador, y de que el lenguaje ensamblador depende de la máquina. ¿Por qué depende de la máquina?...Además que el lenguaje C es portable. ¿Alguien que explique un poco más esto?
|
|
|
En línea
|
|
|
|
nirvguy
Desconectado
Mensajes: 23
|
Porque cuando usas assembler utilizas las instrucciones de la arquitectura en la que estás, aunque hay estandares (desde el 8086, si no me equivoco, antes lo que programabas era solo para tu maquina porque todas las arquitecturas eran diferentes). Hablo de arquitectura tanto como hardware (instrucciones que solo sirven en tu micro, si es que las usas), como de plataforma (16, 32, 64 bits, no es lo mismo redireccionar con 16 bits, que con 32, que con 64), asi como tambien de sist op, cada sist operativo tiene sus interrupciones a nivel de software y en cada uno es diferente, por ejemplo para imprimir la pantalla en linux utilizas 0x21 y en windows 0x80. En cambio C es mas portable porque no se vale de esas caracteristicas especificas. Es decir, en C, si compilas un programa que imprime en pantalla, si lo haces en Linux, por ejemplo, gcc usara la interrupcion 0x21. Por otra parte si lo compilas en windows, MinGW usara la interrupcion (0x80, como te habia dicho). Ademas C tiene un sistema de macros que te permite especificar que codigo va para tal sist op, para tal arquitectura, o para 32 o 64 bits. Pero igual todo lenguaje no interpretado termina en codigo máquina. Espero haberte ayudado y que alguien me corriga si me equivoco.
|
|
|
En línea
|
Todas mis letras han sido pedazos de poesía y los pedazos de poesía se toman de poemas que comúnmente no tienen sentido en primer termino. Kurt Cobain
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Windows 0x21 y Linux 0x80, igual hace largo rato que Windows usa sysenter/syscall. theluigy13etv: http://en.wikipedia.org/wiki/Assembly_language
|
|
« Última modificación: 14 Marzo 2012, 00:23 am por Eternal Idol »
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como importar tarea programada".xml" en el programador de tareas (SOLUCIONADO)
Scripting
|
SuperDraco
|
2
|
12,920
|
3 Diciembre 2009, 19:10 pm
por SuperDraco
|
|
|
Victor Manuel: "Es de gilipollas decir que han desaparecido 400 millones"
Noticias
|
wolfbcn
|
7
|
3,337
|
3 Julio 2011, 12:10 pm
por crazykenny
|
|
|
recursos visual basic, """"""proceso inmortal"""""
Análisis y Diseño de Malware
|
Dark4ngel
|
7
|
14,180
|
3 Noviembre 2011, 10:42 am
por Dark4ngel
|
|
|
Quitar borde - capa "fondo"
Diseño Gráfico
|
nichihack
|
2
|
4,772
|
5 Diciembre 2011, 13:10 pm
por nichihack
|
|
|
Paso de capa Hardware a primera capa abstracta programación
Hardware
|
minicatsCB
|
2
|
3,882
|
16 Junio 2016, 11:23 am
por minicatsCB
|
|