Skip to content · ⁨Saltar al contenido⁩

Software de sistema

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

Train · ⁨Entrenar⁩
Video lesson for this topic · ⁨Lección de video para este tema⁩ Open the video page · ⁨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…

English narration · English + 中文 subtitles burned in · ⁨Narración en inglés · Subtítulos en inglés + 中文 quemados en pantalla⁩

5.1

Operating systems · ⁨Sistemas operativos⁩

Syllabus
English
Candidates should be able to: Notes and guidance
Explain why a computer system requires an Operating System (OS)
Explain the key management tasks carried out by the Operating System Including memory management, file management, security management, hardware management (input/output/peripherals), process management
Show understanding of the need for typical utility software provided with an Operating System Including disk formatter, virus checker, defragmentation software, disk contents analysis / disk repair software, file compression, back-up software
Show understanding of program libraries Including: • software under development is often constructed using existing code from program libraries • the benefits to the developer of software constructed using library files, including Dynamic Link Library (DLL) files
Español
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)

Source: Cambridge International syllabus · ⁨Fuente: Plan de estudios Cambridge International⁩

English

Why a computer needs an OS

Hardware on its own can only fetch and run instructions — it knows nothing about files, programs, networks or users. The operating system 操作系统 (OS) is the software layer that:

  • manages the hardware (processor 处理器, memory, I/O, storage) for the running programs.
  • provides services (file system, network, user accounts) through a clear interface, so programs need not talk to the hardware directly.
  • provides a user interface (command line, GUI, touch).
  • lets several programs share the hardware safely — each gets fair CPU time and is kept out of the others' memory.

Without an OS, every program would need its own drivers, and only one program could safely run at a time.

"Describe the purpose of an OS" — the five-mark list. The OS (1) provides an interface between the user and the hardware; (2) hides the complexity of the hardware from the user and from application programs; (3) manages the hardware resources — processor time, memory, storage and input/output devices — and shares them between programs; (4) loads application software into memory and runs it, giving every program the same platform to run on; (5) lets several programs run at once (multitasking 多任务处理) while keeping them, and the users' data, secure. Give five different points; "it runs the computer" or "it manages resources" alone earns nothing.

Key management tasks

The syllabus names five. Each point below is one thing the OS actually does, which is what a "describe" question wants.

  • memory management 内存管理 — allocates memory to each program when it is loaded, keeps every program's memory separate (memory protection 内存保护) so one cannot overwrite another, frees the memory when a program ends, and swaps pages between RAM 随机存取存储器 and secondary storage 辅助存储器 (the disk) (virtual memory 虚拟内存 / paging 分页) so more programs can be open than physical memory allows.
  • process management 进程管理 — a running program is a process 进程. The OS creates and ends processes, decides which process gets the CPU next (scheduling 调度) and for how long (a time slice 时间片), switches between them, resolves conflicts when two want the same resource, and can kill one that stops responding.
  • hardware management (input/output and peripherals) — talks to each device through its device driver 设备驱动, queues and buffers data going to slow devices such as a printer, responds to interrupts 中断 from devices, and shares one device between several programs.
  • file management — creates, names, copies, moves and deletes files and folders, keeps the directory 目录 structure and a record of where each file is stored on the disk, allocates disk space to files, and enforces access rights 访问权限 (read / write / execute) for each user.
  • security management — user accounts and passwords (authentication 身份验证), access rights, encryption of stored data, a firewall, automatic security updates, and a log of who did what.

How memory and process management support multitasking (a four-mark favourite). Memory management loads several programs into memory at the same time, each in its own protected area, and keeps track of which addresses belong to which; process management shares the processor between them — each process runs for a time slice, the OS saves its state and switches to the next, and the switching is so fast that all the programs appear to run together. Interrupts let the OS take the processor back from a process whenever a device needs attention.

Interrupts. A hardware interrupt 硬件中断 comes from a device: a key pressed, a mouse click, a printer out of paper, a disk finishing a transfer, a power failure. A software interrupt 软件中断 comes from a program: division by zero, an invalid instruction, an attempt to use memory it does not own, or a request for an OS service. The OS's interrupt handler 中断处理程序 saves the state of the running process, deals with the interrupt, then restores the process (topic 4 covers the fetch–execute detail).

Utility software

Utility programs 实用程序 are system software that maintain, repair or optimise the computer rather than doing a user's task; the examiner accepts "performs a specific maintenance task that improves performance or security". Most OSes bundle these:

  • disk formatter — prepares a new disk (or wipes an old one) for use: sets up its file system and partitions, deleting any existing data.
  • virus checker (antivirus 杀毒软件) — scans files and memory, compares code against a database of known virus signatures 签名 and watches for suspicious behaviour, then quarantines or deletes what it finds; runs on a schedule and on every download, and needs updating as new viruses appear.
  • defragmentation software (disk defragmenter 碎片整理) — a hard disk stores a file in whatever free blocks it finds, so after many saves and deletes a file is scattered (fragmented 碎片化) across the platter and the read/write head must jump between the pieces. The defragmenter moves the pieces of each file next to each other and gathers the free space into one region, so files load faster and new files are not fragmented. Not needed on an SSD, which has no moving head.
  • disk contents analysis / disk repair software — shows what is using the disk space (large, duplicate or temporary files) so they can be removed; finds and repairs bad sectors, lost clusters and file-system errors.
  • file compression (compression 压缩) — shrinks files so they need less storage and transfer faster; archiving bundles many files into one.
  • back-up software (backup 备份) — copies files to another medium (external disk, network, cloud) on a schedule so data can be restored after loss, corruption or a ransomware attack; a full copy is followed by incremental backups 增量备份 of only what changed.
  • a firewall 防火墙 (filters network traffic by rules) and encryption tools, for security; a system monitor and automatic updates.

Bundling these with the OS saves the user installing each one.

Which utility does what. Performance: defragmentation (faster file access), disk repair (a disk with errors is slow or fails), disk contents analysis (free space by deleting junk), compression (more fits on the disk). Security: virus checker, firewall, encryption, and backup (the only recovery from ransomware). A "draw one line" question pairs each utility with exactly one purpose — learn the pairs above and use the syllabus names.

Worked example. Explain how defragmentation can improve the performance of a computer (3 marks).

Over time a file is stored in blocks scattered across the hard disk, so reading it needs many movements of the read/write head. The defragmenter rearranges the blocks so each file is stored contiguously and the free space is together. Files are then read with fewer head movements, so they load faster, and new files can be written into one continuous space.

Español

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.

Explore · ⁨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.

Vocabulary · ⁨Vocabulario⁩ Train · ⁨Entrenar⁩
English · ⁨Inglés⁩ Chinese · ⁨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

Program libraries · ⁨Bibliotecas de programas⁩

English

A program library 程序库 is pre-written code (subroutines 子程序, classes, modules) that programs reuse instead of writing it themselves — e.g. a maths library, a network library, a graphics library.

Benefits: saves time (off-the-shelf code), reliable (well-tested, widely used), and standardised (consistent behaviour).

The examiner's benefit list, for the developer. The library routines 库例程 are already written and tested, so development is faster and cheaper; they are reliable and, being used by many programs, largely error-free; the developer needs no expertise in that area (graphics, compression, encryption, path-finding); the program is easier to maintain because common code lives in one place; and a whole team can use the same routines, giving consistent results. Drawbacks: a routine may not do exactly what you need and you cannot change it; your program depends on the library being available, correct and secure — a bug or a security hole in the library is a bug in your program; and you must learn how to call it.

  • a static library 静态库 is copied into the executable at compile time (stands alone, but larger and needs rebuilding to update).
  • a dynamic library 动态库 (DLL, Dynamic Link Library; .so) is loaded at run time (smaller executables, shared by many programs, updated once for all).

Dynamic Link Library (DLL) files. A DLL is a library that is loaded into memory only when a program calls it, at run time, and stays as a separate file rather than being copied into the executable. Benefits: the executable is smaller; several running programs share one copy of the DLL in memory; a DLL can be updated (bug fix, new device) without recompiling the programs that use it; and memory is used only while the routine is needed. Drawbacks: the program will not run if the DLL is missing, moved or the wrong version; an updated DLL can break a program that relied on the old behaviour; and a fake DLL put in its place runs with the program's rights.

Worked example. A team writing the software for a restaurant robot uses a program library that includes a routine to find the shortest path between tables. Explain two benefits and one drawback to the team.

Benefits: the routine is already written and tested, so the team saves time and can trust the result; the team need not understand path-finding algorithms themselves and can spend the time on the robot's own features. Drawback: the routine may not handle the restaurant's exact needs (moving chairs, one-way aisles) and the team cannot alter it, so they may have to work around its limits.

Español

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.

Explore · ⁨Explorar⁩

Laboratorio de conceptos informáticos

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

5.2

Language translators · ⁨Traductores de lenguajes⁩

Syllabus
English
Candidates should be able to: Notes and guidance
Show understanding of the need for: • assembler software for the translation of an assembly language program • a compiler for the translation of a high-level language program • an interpreter for translation and execution of a high-level language program
Explain the benefits and drawbacks of using either a compiler or interpreter and justify the use of each
Show awareness that high-level language programs may be partially compiled and partially interpreted, such as Java (console mode)
Describe features found in a typical Integrated Development Environment (IDE) Including: • for coding, including context-sensitive prompts • for initial error detection, including dynamic syntax checks • for presentation, including prettyprint, expand and collapse code blocks • for debugging, including single stepping, breakpoints, i.e. variables, expressions, report window
Español
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

Source: Cambridge International syllabus · ⁨Fuente: Plan de estudios Cambridge International⁩

English

You write source code; the computer runs machine code 机器码. A translator 翻译器 converts between them.

Assembler

An assembler 汇编器 translates assembly language 汇编语言 into machine code: each mnemonic instruction (LDD, ADD, JMP) becomes exactly one machine-code instruction, and symbolic addresses and labels are replaced by real addresses. It is needed because the processor executes only machine code, and assembly is used where the programmer needs direct control of the hardware (embedded systems, device drivers).

Compiler

A compiler 编译器 translates a high-level program into machine code once, before it runs.

  • it reports all errors at compile time; once clean, it produces a stand-alone executable 可执行文件 that runs without the compiler installed and can be run many times.
  • generally faster at run time (no translation while running), but tied to one CPU/OS — recompile for each platform.

The two-mark description: a compiler translates the whole high-level program into machine code (object code 目标代码) before it is run, produces an executable file, and reports all the syntax errors together as a list at the end of translation. It does not run the program.

Interpreter

An interpreter 解释器 translates and runs a high-level program one line at a time, producing no executable.

  • it reports an error when it reaches that line, then stops; you can fix it and continue — good for development.
  • the interpreter must be installed to run the program; generally slower (each run re-translates), but easy to port across platforms.

The two-mark description: an interpreter translates one statement of the high-level program at a time and executes it immediately before moving to the next; no executable file is produced; it stops at the first error it meets and reports it. Both the source code and the interpreter must be present every time the program runs.

Choosing between them

Use a compiler when: Use an interpreter when:
run-time speed matters you want fast edit–run cycles
distributing to users without dev tools writing cross-platform scripts
the program runs many times the program is small or run once
teaching beginners

Benefits and drawbacks, as the mark scheme lists them.

compiler interpreter
execution speed fast — already machine code slower — translated on every run
what the user needs only the executable; no translator, and the source code stays private the source code and the interpreter
finding errors all errors listed at once, after the whole program is translated each error reported at the line where it occurs, as you develop
changing the code recompile the whole program after every change edit and run again immediately
portability machine code runs on one platform only; recompile for each the same source runs wherever an interpreter exists

Worked example. A developer uses an interpreter while writing a program and a compiler when it is finished. Explain how each is used (4 marks).

During development the interpreter runs the partly written program at once, without waiting for a complete translation; when it meets an error it reports the line, so the developer fixes it and runs again immediately — a fast edit–run cycle that is easier for debugging. When the program is finished, the compiler translates the whole program into an executable that runs faster, needs no translator on the user's computer, and does not reveal the source code, so it can be sold to the public.

Hybrid: Java

Java is compiled into bytecode 字节码 (a platform-independent intermediate form), which a virtual machine 虚拟机 (the JVM) then interprets — or uses just-in-time compilation 即时编译 to turn hot parts into native code. So errors are caught early, the bytecode runs anywhere with a JVM ("write once, run anywhere"), and long-running programs reach near-native speed. C# and Python use similar designs.

The syllabus phrase is "partially compiled and partially interpreted": the compiler stage catches syntax errors and produces compact, portable 可移植的 bytecode; the interpreting stage lets that one bytecode file run on any machine that has a virtual machine, at the cost of some speed. Java in console mode (a text program run from the command line) is the syllabus's example.

Worked example. Java source is compiled to bytecode, which a JVM then interprets. Why use both, instead of compiling straight to machine code? A compiler produces machine code for one processor and operating system, so a program compiled on one machine will not run on another. Java's compiler instead targets a virtual machine, so the bytecode it produces is identical everywhere; each platform then supplies its own JVM to interpret that bytecode into its own native instructions. One compiled file therefore runs anywhere a JVM exists - "write once, run anywhere". The price is speed: interpreting bytecode is slower than running native code, which is why a real JVM also uses JIT compilation to turn frequently-run bytecode into native code while the program runs. Name both sides - the marks are for portability bought at the cost of speed.

Español

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.

Explore · ⁨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.

Vocabulary · ⁨Vocabulario⁩ Train · ⁨Entrenar⁩
English · ⁨Inglés⁩ Chinese · ⁨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

Integrated Development Environment (IDE) · ⁨Entorno de Desarrollo Integrado (IDE)⁩

English

An integrated development environment 集成开发环境 (IDE) brings the tools to write, test and debug code into one application:

The syllabus groups the features into four kinds. Learn which feature belongs to which, because questions ask you to sort them and to describe one from each group.

  • For coding: context-sensitive prompts 上下文相关提示 — as you type, the IDE pops up the identifiers, keywords or parameters that fit at that point in the code; auto-complete 自动补全 finishes the name for you; automatic indentation and bracket matching keep the layout right as you type.
  • For initial error detection: dynamic syntax checks 动态语法检查 — the editor checks the syntax as you type and underlines or highlights a mistake immediately, before the program is translated; after translation, error messages with line numbers.
  • For presentation: prettyprint 代码美化 — keywords, identifiers, strings and comments shown in different colours or fonts (syntax highlighting 语法高亮) with consistent indentation, so the structure is visible at a glance; expand and collapse code blocks — hide the body of a loop, an IF or a subroutine so you see the outline.
  • For debugging: breakpoints 断点 — the program pauses when it reaches a marked line; single stepping 单步执行 — from the pause, run one line at a time; a window that shows the current values of variables and expressions as they change; and a report window 报告窗口 that lists errors, warnings and output.

Other features: translator integration (compile or run with one key, errors shown inline), a debugger 调试器 that drives the debugging features above, version control 版本控制 integration (git), project management, a help system, refactoring 重构 tools (safe renaming) and unit test 单元测试 integration.

An IDE speeds development by putting writing → running → debugging → fixing behind one interface. Common IDEs: Visual Studio, PyCharm, Eclipse, VS Code.

Worked example. A function Calculate() returns an unexpected value when the program runs. Describe how the debugging features of a typical IDE help find the cause (4 marks).

Set a breakpoint on the first line of Calculate(), so the program pauses there instead of running through. Then single-step through the function one line at a time. After each step read the values of the variables and of any expression you have asked the IDE to watch, and compare them with the values you expected; the first line after which a value is wrong is where the logic error is. The report window shows any run-time error message and the output produced so far.

Worked example. Put each feature in its syllabus group: prettyprint, context-sensitive prompt, dynamic syntax check, breakpoint, expand/collapse code blocks, report window.

Coding: context-sensitive prompt. Initial error detection: dynamic syntax check. Presentation: prettyprint, expand/collapse code blocks. Debugging: breakpoint, report window.

Español

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.

Vocabulary · ⁨Vocabulario⁩ Train · ⁨Entrenar⁩
English · ⁨Inglés⁩ Chinese · ⁨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

Definitions the examiner accepts · ⁨Definiciones aceptadas por el examinador⁩

English

A definition question is marked against fixed wording. Learn these exactly, and give one answer only.

Term Definition
operating system software that manages the computer's hardware and resources and provides an interface between the user, the application programs and the hardware
utility software system software that performs a specific task to maintain, optimise or protect the computer, such as a virus checker or a defragmenter
program library a collection of pre-written, tested routines (subroutines, classes, modules) that a program can use instead of writing its own
Dynamic Link Library (DLL) a program library whose routines are loaded into memory only when the program calls them, at run time, and are shared between programs
assembler a translator that converts an assembly language program into machine code, one instruction for each instruction
compiler a translator that converts the whole of a high-level language program into machine code before it is run, producing an executable file
interpreter a translator that translates and executes a high-level language program one statement at a time
integrated development environment a single application that provides the tools for writing, translating, running and debugging a program
context-sensitive prompt a pop-up that suggests identifiers, keywords or parameters that fit at the current point in the code
dynamic syntax check checking the syntax of the code as it is typed and flagging an error before the program is translated
prettyprint displaying code with keywords, identifiers and comments in different colours or fonts and with consistent indentation
breakpoint a marked line at which the running program pauses so that variables can be inspected
single stepping running a paused program one statement at a time under the programmer's control
Español

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

Exam tips · ⁨Consejos para el examen⁩

English
  • List the OS's jobs by their syllabus names (memory, process, hardware, file and security management) and say what each does — "manages resources" alone is too vague.
  • Compare compiler vs interpreter vs assembler: what each translates, when it translates it, and how errors are reported.
  • Explain what an IDE provides using the syllabus groups: coding, initial error detection, presentation, debugging.
  • A "benefit to the developer" answer names the developer's saving: time, cost, expertise, reliability or maintenance. A "drawback" names a dependence: availability, version, fit, security.
  • For "describe the operation of" a translator, give three things: what is translated (whole program or one statement), when (before running or while running), and how errors are reported (all at once or at the first error).

Common mistakes

  • Writing "the OS controls the computer" or "manages resources" with no example task. Each mark is one named task with what it does.
  • Saying an interpreter "compiles line by line". An interpreter translates and executes each statement; it never produces an executable.
  • Saying a compiler runs the program. It only translates; the executable runs later, without the compiler.
  • Putting a DLL "inside" the executable. That is a static library; a DLL stays a separate file loaded at run time.
  • Saying defragmentation "deletes" or "compresses" files, or is needed on an SSD. It only moves blocks so each file is stored contiguously.
  • Filing prettyprint or collapsing blocks under "debugging". They are presentation features; debugging is breakpoints, single stepping, watching variables and the report window.
Español
  • 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.
  • Compare 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.

Interactive lessons on this topic · ⁨Lecciones interactivas sobre este tema⁩

Work through it step by step, with instant-check exercises. · ⁨Trátalo paso a paso, con ejercicios de verificación instantánea.⁩

Past Papers · ⁨Exámenes Anteriores⁩

More topics in A-Level Ciencias de la Computación · ⁨Más temas en A-Level Ciencias de la Computación⁩

Log in or create account · ⁨Iniciar sesión o crear cuenta⁩

IGCSE, A-Level & AP