Saltar al contenido

Software de sistema

A-Level Ciencias de la Computación · Tema 5

Entrenar
Lección de video para este tema Abrir la página de video
21:02

Sistemas operativos

Nunca lo has visto, y nunca lo verás — pero siempre está ahí. Detrás de cada aplicación que abres, cada archivo que guardas, cada toque en la pantalla, un invisible…

Narración en inglés · Subtítulos en inglés + 中文 quemados en pantalla

5.1

Sistemas operativos

Syllabus
Los candidatos deben ser capaces de: Notas y orientaciones
Explicar por qué un sistema informático requiere un Sistema Operativo (SO)
Explicar las tareas clave de gestión realizadas por el Sistema Operativo Incluye la gestión de memoria, gestión de archivos, gestión de seguridad, gestión del hardware (entrada/salida/periféricos), gestión de procesos
Demostrar comprensión de la necesidad de los programas utilitarios típicos proporcionados con un Sistema Operativo Incluye formateador de disco, antivirus, software de desfragmentación, análisis/repair de contenido de disco, compresión de archivos, software de copia de seguridad
Demostrar comprensión de las bibliotecas de programas Incluye: • el software en desarrollo a menudo se construye utilizando código existente de bibliotecas de programas • los beneficios para el desarrollador al utilizar archivos de biblioteca, incluyendo archivos de Biblioteca de Enlace Dinámico (DLL)

Fuente: Plan de estudios Cambridge International

Por qué una computadora necesita un SO

El hardware por sí solo solo puede buscar y ejecutar instrucciones; no sabe nada sobre archivos, programas, redes ni usuarios. El sistema operativo (SO) es la capa de software que:

  • gestiona el hardware (procesador, memoria, E/S, almacenamiento) para los programas en ejecución.
  • proporciona servicios (sistema de archivos, red, cuentas de usuario) a través de una interfaz clara, para que los programas no tengan que comunicarse directamente con el hardware.
  • proporciona una interfaz de usuario (línea de comandos, GUI, táctil).
  • permite que varios programas compartan el hardware de forma segura — cada uno obtiene tiempo de CPU justo y se mantiene fuera de la memoria de los demás.

Sin un SO, cada programa necesitaría sus propios controladores, y solo un programa podría ejecutarse de forma segura a la vez.

"Describe el propósito de un SO" — la lista de cinco puntos. El SO (1) proporciona una interfaz entre el usuario y el hardware; (2) oculta la complejidad del hardware al usuario y a los programas de aplicación; (3) gestiona los recursos de hardware — tiempo de procesador, memoria, almacenamiento y dispositivos de entrada/salida — y los comparte entre programas; (4) carga el software de aplicación en la memoria y lo ejecuta, dando a cada programa la misma plataforma para ejecutarse; (5) permite que varios programas se ejecuten a la vez (multitarea) manteniendo seguros tanto a los programas como los datos de los usuarios. Da cinco puntos diferentes; "ejecuta la computadora" o "gestiona recursos" por separado no otorgan puntos.

Un sistema operativo de escritorio en pantalla
Un sistema operativo de escritorio gestiona la pantalla, los archivos y los programas para el usuario
Un smartphone sostenido en una mano, mostrando la pantalla de inicio de Android con sus iconos de aplicaciones
Un teléfono lo necesita tanto como una computadora: este es un sistema operativo móvil, Android

Tareas de gestión clave

El programa de estudios nombra cinco. Cada punto a continuación es una cosa que el SO realmente hace, lo cual es lo que pide una pregunta de "describe".

  • gestión de la memoria — asigna memoria a cada programa cuando se carga, mantiene separada la memoria de cada programa (protección de memoria) para que uno no sobrescriba a otro, libera la memoria cuando un programa termina, e intercambia páginas entre RAM y almacenamiento secundario (el disco) (memoria virtual / paginación) para que más programas puedan estar abiertos de los que permite la memoria física.
  • gestión de procesos — un programa en ejecución es un proceso. El SO crea y finaliza procesos, decide qué proceso obtendrá la CPU siguiente (planificación) y por cuánto tiempo (una rebanada de tiempo), cambia entre ellos, resuelve conflictos cuando dos quieren el mismo recurso, y puede matar uno que deja de responder.
  • gestión del hardware (entrada/salida y periféricos) — se comunica con cada dispositivo a través de su controlador de dispositivo, encola y amortigua datos enviados a dispositivos lentos como una impresora, responde a interrupciones de dispositivos, y comparte un dispositivo entre varios programas.
  • gestión de archivos — crea, nombra, copia, mueve y elimina archivos y carpetas, mantiene la estructura de directorio y un registro de dónde se almacena cada archivo en el disco, asigna espacio en disco a los archivos, y aplica derechos de acceso (lectura / escritura / ejecución) para cada usuario.
  • gestión de seguridad — cuentas de usuario y contraseñas (autenticación), derechos de acceso, cifrado de datos almacenados, un cortafuegos, actualizaciones de seguridad automáticas y un registro de quién hizo qué.
Diagrama de concentrador con el sistema operativo en el centro conectado por radios a la gestión de memoria, proceso, archivo, dispositivo y seguridad, y la interfaz de usuario
Los trabajos principales que gestiona el sistema operativo
Un mapa de memoria con el sistema operativo y tres aplicaciones cada una en su propio bloque, separadas por direcciones límite; se permite el acceso dentro de un bloque pero se bloquea el acceso que sobrepasa un límite
La protección de memoria mantiene cada aplicación en su propio bloque de memoria

Cómo la gestión de memoria y de procesos apoya la multitarea (un favorito de cuatro puntos). La gestión de memoria carga varios programas en la memoria al mismo tiempo, cada uno en su propia área protegida, y lleva la cuenta de qué direcciones pertenecen a cuáles; la gestión de procesos comparte el procesador entre ellos — cada proceso se ejecuta durante una rebanada de tiempo, el SO guarda su estado y cambia al siguiente, y el cambio es tan rápido que todos los programas parecen ejecutarse juntos. Las interrupciones permiten que el SO recupere el procesador de un proceso siempre que un dispositivo necesite atención.

Interrupciones. Una interrupción de hardware proviene de un dispositivo: una tecla presionada, un clic del ratón, una impresora sin papel, un disco terminando una transferencia, un fallo de energía. Una interrupción de software proviene de un programa: división por cero, una instrucción inválida, un intento de usar memoria que no le pertenece, o una solicitud de servicio del SO. El manejador de interrupciones del SO guarda el estado del proceso en ejecución, maneja la interrupción y luego restaura el proceso (el tema 4 cubre el detalle de búsqueda-ejecución).

Software de utilidad

Los programas de utilidad son software del sistema que mantienen, reparan u optimizan la computadora en lugar de realizar una tarea del usuario; el examinador acepta "realiza una tarea de mantenimiento específica que mejora el rendimiento o la seguridad". La mayoría de los SO los incluyen:

Programas de utilidad comunes: antivirus, respaldo, compresión de archivos y desfragmentador de discos
Programas de utilidad: antivirus, respaldo, compresión y desfragmentador
  • formateador de disco — prepara un disco nuevo (o borra uno viejo) para su uso: establece su sistema de archivos y particiones, eliminando cualquier dato existente.
  • verificador de virus (antivirus) — escanea archivos y memoria, compara código contra una base de datos de firmas de virus conocidas y vigila comportamientos sospechosos, luego cuarentena o elimina lo que encuentra; se ejecuta según un horario y en cada descarga, y necesita actualizaciones a medida que aparecen nuevos virus.
  • software de desfragmentación — un disco duro almacena un archivo en los bloques libres que encuentra, por lo que después de muchas guardas y eliminaciones, un archivo queda disperso (fragmentado) a través del plato y el cabezal de lectura/escritura debe saltar entre las piezas. El desfragmentador mueve las piezas de cada archivo una junto a la otra y agrupa el espacio libre en una sola región, para que los archivos carguen más rápido y los nuevos archivos no se fragmenten. No es necesario en una SSD, que no tiene cabezal móvil.
  • análisis de contenido de disco / software de reparación de discos — muestra qué está usando el espacio en disco (archivos grandes, duplicados o temporales) para que puedan ser eliminados; encuentra y repara sectores defectuosos, clústeres perdidos y errores del sistema de archivos.
  • compresión de archivos — encoge los archivos para que ocupen menos almacenamiento y se transfieran más rápido; el archivado agrupa muchos archivos en uno.
  • software de respaldo — copia archivos a otro medio (disco externo, red, nube) según un horario para que los datos puedan restaurarse tras una pérdida, corrupción o ataque de ransomware; un copiado completo es seguido por respaldos incrementales de solo lo que cambió.
  • un cortafuegos (filtra el tráfico de red por reglas) y herramientas de cifrado, para seguridad; un monitor del sistema y actualizaciones automáticas.

Incluirlos con el SO ahorra al usuario instalar cada uno.

Qué hace cada programa de utilidad. Rendimiento: desfragmentación (acceso a archivos más rápido), reparación de discos (un disco con errores es lento o falla), análisis de contenido de disco (espacio libre al eliminar basura), compresión (más caben en el disco). Seguridad: verificador de virus, cortafuegos, cifrado y respaldo (la única recuperación ante ransomware). Una pregunta de "dibuja una línea" empareja cada programa de utilidad con exactamente un propósito — aprende los pares anteriores y usa los nombres del programa de estudios.

Ejemplo resuelto. Explica cómo la desfragmentación puede mejorar el rendimiento de una computadora (3 puntos).

Con el tiempo, un archivo se almacena en bloques dispersos a través del disco duro, por lo que leerlo requiere muchos movimientos del cabezal de lectura/escritura. El desfragmentador reordena los bloques para que cada archivo se almacene contiguamente y el espacio libre esté junto. Los archivos se leen entonces con menos movimientos del cabezal, por lo que cargan más rápido, y los nuevos archivos pueden escribirse en un espacio continuo.

Explorar

Dónde se sitúa el sistema operativo

Toca cada capa. El SO es la capa intermedia: se sitúa entre tus aplicaciones y el hardware, compartiendo la máquina de forma segura para que los programas nunca accedan al hardware directamente.

Vocabulario Entrenar
Inglés Chino Pinyin
operating system/ˈɒpəreɪtɪŋ ˈsɪstəm/ 操作系统 cāo zuò xì tǒng
processor/ˈprəʊsesə/ 处理器 chǔ lǐ qì
multitasking/ˈmʌltitæskɪŋ/ 多任务处理 duō rèn wù chǔ lǐ
memory management/ˈmeməri ˈmænɪdʒmənt/ 内存管理 nèi cún guǎn lǐ
memory protection/ˈmeməri prəˈtekʃn/ 内存保护 nèi cún bǎo hù
RAM/ræm/ 随机存取存储器 suí jī cún qǔ cún chǔ qì
secondary storage/ˈsekəndəri ˈstɔːrɪdʒ/ 辅助存储器 fǔ zhù cún chǔ qì
virtual memory/ˈvɜːtʃuːəl ˈmeməri/ 虚拟内存 xū nǐ nèi cún
paging/ˈpeɪdʒɪŋ/ 分页 fēn yè
process management/ˈprəʊses ˈmænɪdʒmənt/ 进程管理 jìn chéng guǎn lǐ
process/ˈprəʊses/ 进程 jìn chéng
scheduling/ˈʃedjuːlɪŋ/ 调度 diào dù
time slice/taɪm slaɪs/ 时间片 shí jiān piàn
device driver/dɪˈvaɪs ˈdraɪvə/ 设备驱动 shè bèi qū dòng
interrupts/ˈɪntərʌpts/ 中断 zhōng duàn
directory/daɪˈrektəri/ 目录 mù lù
access rights/ˈækses raɪts/ 访问权限 fǎng wèn quán xiàn
authentication/ɔːˌθentɪˈkeɪʃn/ 身份验证 shēn fèn yàn zhèng
firewall/ˈfaɪəwɔːl/ 防火墙 fáng huǒ qiáng
hardware interrupt/ˈhɑːdweə ˈɪntərʌpt/ 硬件中断 yìng jiàn zhōng duàn
software interrupt/ˈsɒftweə ˈɪntərʌpt/ 软件中断 ruǎn jiàn zhōng duàn
interrupt handler/ˈɪntərʌpt ˈhændlə/ 中断处理程序 zhōng duàn chǔ lǐ chéng xù
utility program/juːˈtɪlɪti ˈprəʊɡræm/ 实用程序 shí yòng chéng xù
antivirus/ˌæntɪˈvaɪrəs/ 杀毒软件 shā dú ruǎn jiàn
backup/ˈbækʌp/ 备份 bèi fèn
compression/kəmˈpreʃn/ 压缩 yā suō
disk defragmenter/dɪsk ˌdiːˈfræɡmentə/ 碎片整理 suì piàn zhěng lǐ
signatures/ˈsɪɡnɪtʃəz/ 签名 qiān míng
fragmented/fræɡˈmentɪd/ 碎片化 suì piàn huà
incremental backups/ˌɪŋkrɪˈmentl ˈbækʌps/ 增量备份 zēng liàng bèi fèn
program library/ˈprəʊɡræm ˈlaɪbrəri/ 程序库 chéng xù kù
subroutines/ˈsʌbruːtiːnz/ 子程序 zi chéng xù
library routines/ˈlaɪbrəri ruːˈtiːnz/ 库例程 kù lì chéng
static library/ˈstætɪk ˈlaɪbrəri/ 静态库 jìng tài kù
executable/ɪɡˈzekjʊtəbl/ 可执行文件 kě zhí xíng wén jiàn
dynamic library/daɪˈnæmɪk ˈlaɪbrəri/ 动态库 dòng tài kù
translator/trænˈsleɪtə/ 翻译器 fān yì qì
machine code/məˈʃiːn kəʊd/ 机器码 jī qì mǎ
assembler/əˈsemblə/ 汇编器 huì biān qì
assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ 汇编语言 huì biān yǔ yán
5.1

Bibliotecas de programas

Una biblioteca de programas es código preescrito (subrutinas, clases, módulos) que los programas reutilizan en lugar de escribirlo ellos mismos — por ejemplo, una biblioteca matemática, una biblioteca de red, una biblioteca gráfica.

Un nuevo programa en desarrollo reutilizando rutinas listas de una biblioteca matemática, una biblioteca gráfica y una biblioteca de red
Un nuevo programa reutilizando rutinas listas de bibliotecas

Beneficios: ahorra tiempo (código listo para usar), confiable (bien probado, ampliamente usado) y estandarizado (comportamiento consistente).

La lista de beneficios del examinador, para el desarrollador. Las rutinas de la biblioteca ya están escritas y probadas, por lo que el desarrollo es más rápido y barato; son confiables y, al ser usadas por muchos programas, largely error-free (con errores mínimos); el desarrollador no necesita experticia en esa área (gráficos, compresión, cifrado, búsqueda de rutas); el programa es más fácil de mantener porque el código común vive en un solo lugar; y todo un equipo puede usar las mismas rutinas, dando resultados consistentes. Inconvenientes: una rutina puede no hacer exactamente lo que necesitas y no puedes cambiarla; tu programa depende de que la biblioteca esté disponible, sea correcta y segura — un error o una brecha de seguridad en la biblioteca es un error en tu programa; y debes aprender cómo llamarla.

  • una biblioteca estática se copia en el ejecutable en tiempo de compilación (funciona por sí sola, pero es más grande y necesita recompilarse para actualizarse).
  • una biblioteca dinámica (DLL, Dynamic Link Library; .so) se carga en tiempo de ejecución (ejecutables más pequeños, compartida por muchos programas, se actualiza una vez para todos).
Una biblioteca estática se copia en el ejecutable en tiempo de compilación, haciendo un programa independiente más grande; un archivo de biblioteca dinámica (.dll o .so) permanece separado, se carga en tiempo de ejecución y es compartido por varios programas
Estático: la biblioteca se copia en el ejecutable. Dinámico: un archivo de biblioteca compartida se carga en tiempo de ejecución

Archivos de Dynamic Link Library (DLL). Una DLL es una biblioteca que se carga en la memoria solo cuando un programa la llama, en tiempo de ejecución, y permanece como un archivo separado en lugar de copiarse en el ejecutable. Beneficios: el ejecutable es más pequeño; varios programas en ejecución comparten una copia de la DLL en la memoria; una DLL se puede actualizar (corrección de errores, nuevo dispositivo) sin recompilar los programas que la usan; y la memoria se usa solo mientras se necesita la rutina. Inconvenientes: el programa no funcionará si falta la DLL, se mueve o es la versión incorrecta; una DLL actualizada puede romper un programa que dependía del comportamiento anterior; y una DLL falsa colocada en su lugar se ejecuta con los privilegios del programa.

Ejemplo resuelto. Un equipo que escribe software para un robot de restaurante usa una biblioteca de programas que incluye una rutina para encontrar el camino más corto entre mesas. Explica dos beneficios y un inconveniente para el equipo.

Beneficios: la rutina ya está escrita y probada, así que el equipo ahorra tiempo y puede confiar en el resultado; el equipo no necesita entender algoritmos de búsqueda de rutas por sí mismo y puede dedicar el tiempo a las características propias del robot. Inconveniente: la rutina puede no manejar las necesidades exactas del restaurante (mover sillas, pasillos de un solo sentido) y el equipo no puede alterarla, por lo que podrían tener que work around (adaptarse a) sus limitaciones.

Explorar

Laboratorio de conceptos informáticos

Clasificar ejemplos concretos según la idea informática que demuestran.

5.2

Traductores de lenguajes

Syllabus
Los candidatos deben ser capaces de: Notas y orientación
Demostrar comprensión de la necesidad de: • software ensamblador para la traducción de un programa en lenguaje ensamblador • un compilador para la traducción de un programa en lenguaje de alto nivel • un intérprete para la traducción y ejecución de un programa en lenguaje de alto nivel
Explicar las ventajas e inconvenientes del uso de un compilador o un intérprete, y justificar el uso de cada uno
Demostrar conocimiento de que los programas en lenguajes de alto nivel pueden ser parcialmente compilados y parcialmente interpretados, como Java (modo consola)
Describir las características de un entorno de desarrollo integrado (IDE) típico Incluyendo: • para la codificación, incluyendo indicaciones sensibles al contexto • para la detección inicial de errores, incluyendo verificaciones sintácticas dinámicas • para la presentación, incluyendo formato estético (prettyprint), expansión y colapso de bloques de código • para la depuración, incluyendo paso a paso, puntos de interrupción, variables, expresiones y ventana de informes

Fuente: Plan de estudios Cambridge International

Escribes código fuente; la computadora ejecuta código máquina. Un traductor convierte entre ambos.

Ensamblador

Un ensamblador traduce lenguaje ensamblador a código máquina: cada instrucción mnemotécnica (LDD, ADD, JMP) se convierte exactamente en una instrucción de código máquina, y las direcciones simbólicas y etiquetas se reemplazan por direcciones reales. Es necesario porque el procesador solo ejecuta código máquina, y el ensamblador se usa donde el programador necesita control directo del hardware (sistemas embebidos, controladores de dispositivos).

Compilador

Un compilador traduce un programa de alto nivel a código máquina una vez, antes de ejecutarse.

  • informa todos los errores en tiempo de compilación; una vez limpio, produce un ejecutable independiente que se ejecuta sin el compilador instalado y puede ejecutarse muchas veces.
  • generalmente más rápido en tiempo de ejecución (sin traducción mientras se ejecuta), pero ligado a una CPU/SO específico — recompilar para cada plataforma.

La descripción de dos puntos: un compilador traduce el programa completo de alto nivel a código máquina (código objeto) antes de ejecutarse, produce un archivo ejecutable e informa todos los errores de sintaxis juntos como una lista al final de la traducción. No ejecuta el programa.

Intérprete

Un intérprete traduce y ejecuta un programa de alto nivel una línea a la vez, sin producir un ejecutable.

  • informa un error cuando llega a esa línea, luego se detiene; puedes corregirlo y continuar — bueno para el desarrollo.
  • el intérprete debe estar instalado para ejecutar el programa; generalmente más lento (cada ejecución vuelve a traducir), pero fácil de portar entre plataformas.

La descripción de dos puntos: un intérprete traduce una declaración del programa de alto nivel a la vez y la ejecuta inmediatamente antes de pasar a la siguiente; no se produce un archivo ejecutable; se detiene en el primer error que encuentra y lo informa. Tanto el código fuente como el intérprete deben estar presentes cada vez que se ejecuta el programa.

Un compilador traduce el código fuente una vez en un ejecutable que luego se ejecuta muchas veces sin traductor presente; un intérprete traduce y ejecuta el código fuente línea por línea, en cada ejecución
Un compilador traduce una vez en un programa independiente; un intérprete traduce línea por línea, cada ejecución

Elegir entre ellos

Usa un compilador cuando: Usa un intérprete cuando:
importa la velocidad en tiempo de ejecución quieres ciclos rápidos de edición-ejecución
distribuyes a usuarios sin herramientas de desarrollo escribes scripts multiplataforma
el programa se ejecuta muchas veces el programa es pequeño o se ejecuta una vez
enseñando a principiantes

Beneficios e inconvenientes, según los criterios de calificación.

compilador intérprete
velocidad de ejecución rápida — ya es código máquina más lenta — traducida en cada ejecución
lo que necesita el usuario solo el ejecutable; sin traductor, y el código fuente se mantiene privado el código fuente y el intérprete
encontrar errores todos los errores listados a la vez, después de traducir el programa completo cada error informado en la línea donde ocurre, mientras desarrollas
cambiar el código recompilar el programa completo después de cada cambio editar y ejecutar de nuevo inmediatamente
portabilidad el código máquina solo corre en una plataforma; recompilar para cada uno la misma fuente corre dondequiera que exista un intérprete

Ejemplo resuelto. Un desarrollador usa un intérprete mientras escribe un programa y un compilador cuando ha terminado. Explica cómo se usa cada uno (4 puntos).

Durante el desarrollo, el intérprete ejecuta el programa parcialmente escrito de inmediato, sin esperar una traducción completa; cuando encuentra un error informa la línea, así que el desarrollador lo corrige y ejecuta de nuevo inmediatamente — un ciclo rápido de edición-ejecución que es más fácil para depurar. Cuando el programa termina, el compilador traduce todo el programa en un ejecutable que se ejecuta más rápido, no necesita traductor en la computadora del usuario y no revela el código fuente, por lo que se puede vender al público.

Híbrido: Java

Java se compila a bytecode (una forma intermedia independiente de la plataforma), que luego interpreta una máquina virtual (la JVM) — o usa compilación just-in-time para convertir partes calientes en código nativo. Así, los errores se detectan temprano, el bytecode corre en cualquier lugar con una JVM ("escribe una vez, ejecuta en cualquier lugar"), y los programas de larga duración alcanzan velocidades cercanas al código nativo. C# y Python usan diseños similares.

La frase del programa de estudios es "parcialmente compilado y parcialmente interpretado": la etapa de compilación detecta errores de sintaxis y produce bytecode compacto y portable; la etapa de interpretación permite que ese único archivo de bytecode se ejecute en cualquier máquina que tenga una máquina virtual, a costa de algo de velocidad. Java en modo consola (un programa de texto ejecutado desde la línea de comandos) es el ejemplo del programa de estudios.

El código fuente de Java se compila una vez en bytecode independiente de la plataforma (.class), que una JVM en Windows, macOS o Linux interpreta o compila JIT a código nativo
Java compila a bytecode portable que cualquier JVM ejecuta — escribe una vez, ejecuta en cualquier lugar

Ejemplo resuelto. El código fuente de Java se compila a bytecode, que una JVM luego interpreta. ¿Por qué usar ambos, en lugar de compilar directamente a código máquina? Un compilador produce código máquina para un procesador y sistema operativo, por lo que un programa compilado en una máquina no correrá en otra. El compilador de Java, en cambio, apunta a una máquina virtual, por lo que el bytecode que produce es idéntico en todas partes; cada plataforma luego proporciona su propia JVM para interpretar ese bytecode en sus propias instrucciones nativas. Por lo tanto, un solo archivo compilado corre en cualquier lugar que exista una JVM - "escribe una vez, ejecuta en cualquier lugar". El precio es la velocidad: interpretar bytecode es más lento que ejecutar código nativo, por eso una JVM real también usa compilación JIT para convertir bytecode ejecutado frecuentemente en código nativo mientras el programa se ejecuta. Nombra ambos lados - los puntos son por la portabilidad obtenida a costa de la velocidad.

Explorar

La ruta del compilador: desde el código fuente hasta el programa en ejecución

Paso a paso cómo funciona un compilador: traduce todo el programa una vez, antes de ejecutarlo. Contrástalo con un intérprete, que traduce y ejecuta línea por línea.

Vocabulario Entrenar
Inglés Chino Pinyin
compiler/kəmˈpaɪlə/ 编译器 biān yì qì
object code/ˈɒbdʒekt kəʊd/ 目标代码 mù biāo dài mǎ
interpreter/ɪnˈtɜːprɪtə/ 解释器 jiě shì qì
bytecode/ˈbaɪtkəʊd/ 字节码 zì jié mǎ
virtual machine/ˈvɜːtʃuːəl məˈʃiːn/ 虚拟机 xū nǐ jī
just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ 即时编译 jí shí biān yì
portable/ˈpɔːtəbl/ 可移植的 kě yí zhí de
integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/ 集成开发环境 jí chéng kāi fā huán jìng
5.2

Entorno de Desarrollo Integrado (IDE)

Un entorno de desarrollo integrado (IDE) reúne las herramientas para escribir, probar y depurar código en una sola aplicación:

Un IDE agrupa el editor de código, un botón Ejecutar y un depurador en un solo programa
Un IDE agrupa el editor, un botón Ejecutar y un depurador

El programa de estudios agrupa las características en cuatro tipos. Aprende cuál característica pertenece a cuál, porque las preguntas te piden clasificarlas y describir una de cada grupo.

  • Para codificar: avisos sensibles al contexto — mientras escribes, el IDE muestra identificadores, palabras clave o parámetros que corresponden en ese punto del código; autocompletado termina el nombre por ti; la indentación automática y la coincidencia de paréntesis mantienen el formato correcto mientras escribes.
  • Para detección inicial de errores: verificaciones de sintaxis dinámicas — el editor verifica la sintaxis mientras escribes y subraya o resalta un error inmediatamente, antes de que el programa se traduzca; después de la traducción, mensajes de error con números de línea.
  • Para presentación: prettyprint — palabras clave, identificadores, cadenas y comentarios mostrados en diferentes colores o fuentes (resaltado de sintaxis) con indentación consistente, para que la estructura sea visible de un vistazo; expandir y contraer bloques de código — oculta el cuerpo de un bucle, un IF o una subrutina para que veas el esquema.
  • Para depuración: puntos de ruptura — el programa se pausa cuando llega a una línea marcada; paso a paso — desde la pausa, ejecuta una línea a la vez; una ventana que muestra los valores actuales de variables y expresiones a medida que cambian; y una ventana de informe que enumera errores, advertencias y salida.

Otras características: integración de traductores (compilar o ejecutar con una tecla, errores mostrados en línea), un depurador que acciona las funciones de depuración anteriores, integración de control de versiones (git), gestión de proyectos, un sistema de ayuda, herramientas de refactorización (renombrado seguro) e integración de pruebas unitarias.

Una ventana de IDE anotada con etiquetas numeradas: palabras clave coloreadas (prettyprint), un bloque de código contraído, un aviso emergente sugiriendo un nombre, un subrayado ondulante de la verificación de sintaxis dinámica, un punto de ruptura en el margen, una flecha en la línea actual durante el paso a paso, un panel de variables y una ventana de informe
Las características del IDE con los nombres del programa de estudios, en los lugares donde las verías en pantalla

Un IDE acelera el desarrollo poniendo escribir → ejecutar → depurar → corregir detrás de una sola interfaz. IDEs comunes: Visual Studio, PyCharm, Eclipse, VS Code.

Flujo de trabajo de un depurador: establece un punto de ruptura, ejecuta el programa, y cuando llega al punto de ruptura se pausa para que inspecciones las variables, luego paso a paso o continúa
Un depurador: establece un punto de ruptura, ejecuta, luego pausa para inspeccionar variables y paso a paso a través del código

Ejemplo resuelto. Una función Calculate() devuelve un valor inesperado cuando el programa se ejecuta. Describe cómo las funciones de depuración de un IDE típico ayudan a encontrar la causa (4 puntos).

Establece un punto de ruptura en la primera línea de Calculate(), para que el programa se pause allí en lugar de ejecutarse a través. Luego pasa paso a paso a través de la función línea por línea. Después de cada paso lee los valores de las variables y de cualquier expresión que hayas pedido al IDE que vigile, y compáralos con los valores que esperabas; la primera línea después de la cual un valor es incorrecto es donde está el error lógico. La ventana de informe muestra cualquier mensaje de error en tiempo de ejecución y la salida producida hasta ahora.

Ejemplo resuelto. Coloca cada característica en su grupo del programa de estudios: prettyprint, aviso sensible al contexto, verificación de sintaxis dinámica, punto de ruptura, expandir/contraer bloques de código, ventana de informe.

Codificación: aviso sensible al contexto. Detección inicial de errores: verificación de sintaxis dinámica. Presentación: prettyprint, expandir/contraer bloques de código. Depuración: punto de ruptura, ventana de informe.

Vocabulario Entrenar
Inglés Chino Pinyin
debugger/ˈdiːbʌɡə/ 调试器 tiáo shì qì
context-sensitive prompts/ˈkɒntekst ˈsensɪtɪv prɒmpts/ 上下文相关提示 shàng xià wén xiāng guān tí shì
auto-complete/ˈɔːtəʊ kəmˈpliːt/ 自动补全 zì dòng bǔ quán
dynamic syntax checks/daɪˈnæmɪk ˈsɪntæks tʃeks/ 动态语法检查 dòng tài yǔ fǎ jiǎn chá
prettyprint/ˈpretɪprɪnt/ 代码美化 dài mǎ měi huà
syntax highlighting/ˈsɪntæks ˈhaɪlaɪtɪŋ/ 语法高亮 yǔ fǎ gāo liàng
breakpoints/ˈbreɪkpɔɪnts/ 断点 duàn diǎn
single stepping/ˈsɪŋɡl ˈstepɪŋ/ 单步执行 dān bù zhí xíng
report window/rɪˈpɔːt ˈwɪndəʊ/ 报告窗口 bào gào chuāng kǒu
version control/ˈvɜːʃn kənˈtrəʊl/ 版本控制 bǎn běn kòng zhì
refactoring/rɪˈfæktərɪŋ/ 重构 chóng gòu
unit test/ˈjuːnɪt test/ 单元测试 dān yuán cè shì
5.2

Definiciones aceptadas por el examinador

Una pregunta de definición se califica contra una redacción fija. Aprende estas exactamente, y da solo una respuesta.

Término Definición
sistema operativo software que gestiona el hardware y los recursos del ordenador y proporciona una interfaz entre el usuario, los programas de aplicación y el hardware
software de utilidad software de sistema que realiza una tarea específica para mantener, optimizar o proteger el ordenador, como un antivirus o un desfragmentador
biblioteca de programas colección de rutinas preescritas y probadas (subrutinas, clases, módulos) que un programa puede utilizar en lugar de escribir las suyas propias
Biblioteca de Enlaces Dinámicos (DLL) biblioteca de programas cuyas rutinas se cargan en la memoria solo cuando el programa las llama, en tiempo de ejecución, y que son compartidas entre programas
ensamblador traductor que convierte un programa en lenguaje de ensamblaje en código máquina, una instrucción por cada instrucción
compilador traductor que convierte todo un programa en lenguaje de alto nivel en código máquina antes de ser ejecutado, produciendo un archivo ejecutable
intérprete traductor que traduce y ejecuta un programa en lenguaje de alto nivel una sentencia a la vez
entorno de desarrollo integrado (IDE) aplicación única que proporciona las herramientas para escribir, traducir, ejecutar y depurar un programa
indicación contextual ventana emergente que sugiere identificadores, palabras clave o parámetros que corresponden al punto actual del código
comprobación de sintaxis dinámica comprobación de la sintaxis del código mientras se escribe y señalización de errores antes de que el programa sea traducido
formateo estético visualización del código con palabras clave, identificadores y comentarios en diferentes colores o fuentes, y con sangrías consistentes
punto de interrupción línea marcada en la que el programa en ejecución se pausa para poder inspeccionar variables
paso a paso ejecución de un programa pausado una sentencia a la vez bajo el control del programador
5.2

Consejos para el examen

  • Enumere las funciones del SO según sus nombres del temario (gestión de memoria, procesos, hardware, archivos y seguridad) y explique qué hace cada una: decir simplemente "gestiona recursos" es demasiado vago.
  • Comparar compilador vs. intérprete vs. ensamblador: qué traducen, cuándo lo hacen y cómo se informan los errores.
  • Explique qué proporciona un IDE utilizando los grupos del temario: codificación, detección inicial de errores, presentación y depuración.
  • Una respuesta sobre una "ventaja para el desarrollador" menciona el ahorro del desarrollador: tiempo, coste, experiencia, fiabilidad o mantenimiento. Una "desventaja" menciona una dependencia: disponibilidad, versión, compatibilidad o seguridad.
  • Para "describir el funcionamiento de" un traductor, proporcione tres cosas: qué se traduce (programa completo o una sentencia), cuándo (antes de ejecutar o durante la ejecución) y cómo se informan los errores (todos a la vez o en el primer error).

Errores comunes

  • Escribir "el OS controla el ordenador" o "gestiona recursos" sin dar una tarea de ejemplo. Cada punto vale por una tarea nombrada con lo que hace.
  • Decir que un intérprete "compila línea por línea". Un intérprete traduce y ejecuta cada sentencia; nunca produce un ejecutable.
  • Decir que un compilador ejecuta el programa. Solo traduce; el ejecutable se ejecuta después, sin el compilador.
  • Colocar una DLL "dentro" del ejecutable. Eso es una biblioteca estática; una DLL permanece como un archivo separado que se carga en tiempo de ejecución.
  • Decir que la desfragmentación "elimina" o "comprime" archivos, o que es necesaria en una SSD. Solo mueve bloques para que cada archivo se almacene de forma contigua.
  • Clasificar el formateo estético o el colapso de bloques bajo "depuración". Son características de presentación; la depuración incluye puntos de interrupción, paso a paso, observación de variables y ventana de informes.

Lecciones interactivas sobre este tema

Trátalo paso a paso, con ejercicios de verificación instantánea.

Exámenes Anteriores

Más temas en A-Level Ciencias de la Computación

Iniciar sesión o crear cuenta

IGCSE, A-Level & AP