| 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) |
Software de sistema
A-Level Ciencias de la Computación · Tema 5
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
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.


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é.


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:

- 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.
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.
| 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.

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).

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.
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.

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.

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.
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.
| 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:

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.

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

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.
| 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.