Você nunca viu isso, e nunca verá — mas ele está sempre lá. Atrás de cada aplicativo que você abre, cada arquivo que você salva, cada toque na tela, um invisível…
English narration · English + 中文 subtitles burned in · Narração em inglês · Legendas em inglês + 中文 gravadas
5.1
Operating systems · Sistemas Operacionais
Syllabus · Programa
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
Português
Os candidatos devem ser capazes de:
Notas e orientações
Explicar por que um sistema computacional requer um Sistema Operacional (SO)
Explique as principais tarefas de gestão realizadas pelo Sistema Operacional
Incluindo gestão de memória, gestão de ficheiros, gestão de segurança, gestão de hardware (entrada/saída/periféricos), gestão de processos
Demonstre compreensão da necessidade de software de utilidade típico fornecido com um Sistema Operacional
Incluindo formatador de disco, verificador de vírus, software de desfragmentação, análise de conteúdos de disco / software de reparação de disco, compressão de ficheiros, software de cópia de segurança
Demonstre compreensão de bibliotecas de programas
Incluindo: • o software em desenvolvimento é frequentemente construído utilizando código existente de bibliotecas de programas • os benefícios para o desenvolvedor do software construído utilizando ficheiros de biblioteca, incluindo ficheiros Dynamic Link Library (DLL)
Source: Cambridge International syllabus · Fonte: Programa 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.
Português
Por que um computador precisa de um SO
Hardware sozinho pode apenas buscar e executar instruções — não sabe nada sobre arquivos, programas, redes ou usuários. O sistema operacional 操作系统 (OS) é a camada de software que:
gerencia o hardware (processador 处理器, memória, E/S, armazenamento) para os programas em execução.
fornece serviços (sistema de arquivos, rede, contas de usuário) através de uma interface clara, para que programas não precisem falar diretamente com o hardware.
fornece uma interface para o usuário (linha de comando, GUI, toque).
permite que vários programas compartilhem o hardware com segurança — cada um obtém tempo justo de CPU e é mantido fora da memória dos outros.
Sem um SO, cada programa precisaria de seus próprios drivers, e apenas um programa poderia rodar com segurança por vez.
"Descreva o propósito de um SO — lista de cinco pontos." O OS (1) fornece uma interface entre o usuário e o hardware; (2) oculta a complexidade do hardware do usuário e dos programas de aplicação; (3) gerencia os recursos de hardware — tempo de processador, memória, armazenamento e dispositivos de entrada/saída — e os compartilha entre programas; (4) carrega software de aplicação na memória e o executa, dando a todo programa a mesma plataforma para rodar; (5) permite que vários programas rodam ao mesmo tempo (multitarefa 多任务处理) enquanto os mantém, bem como os dados dos usuários, seguros. Dê cinco pontos diferentes; "ele roda o computador" ou "ele gerencia recursos" isoladamente não vale nada.
Um sistema operacional desktop gerencia a tela, arquivos e programas para o usuárioUm telefone precisa de um tão quanto: este é um sistema operacional mobile, Android
Tarefas principais de gerenciamento
O programa de estudos nomeia cinco. Cada ponto abaixo é uma coisa que o SO realmente faz, o que uma questão "descreva" quer.
gestão de memória 内存管理 — aloca memória para cada programa quando ele é carregado, mantém a memória de cada programa separada (proteção de memória 内存保护) para que um não sobrescreva outro, libera a memória quando um programa termina, e troca páginas entre RAM 随机存取存储器 e armazenamento secundário 辅助存储器 (o disco) (memória virtual 虚拟内存 / paginação 分页) para que mais programas possam estar abertos do que a memória física permite.
gestão de processos 进程管理 — um programa em execução é um processo 进程. O SO cria e encerra processos, decide qual processo obterá a CPU a seguir (escalonamento 调度) e por quanto tempo (uma fatia de tempo 时间片), alterna entre eles, resolve conflitos quando dois querem o mesmo recurso, e pode matar um que parar de responder.
gestão de hardware (entrada/saída e periféricos) — conversa com cada dispositivo através de seu driver de dispositivo 设备驱动, enfileira e bufferiza dados indo para dispositivos lentos como uma impressora, responde a interrupções 中断 de dispositivos, e compartilha um dispositivo entre vários programas.
gestão de arquivos — cria, nomeia, copia, move e exclui arquivos e pastas, mantém a estrutura de diretório 目录 e um registro de onde cada arquivo está armazenado no disco, aloca espaço de disco para arquivos, e impõe direitos de acesso 访问权限 (leitura / gravação / execução) para cada usuário.
gestão de segurança — contas de usuário e senhas (autenticação 身份验证), direitos de acesso, criptografia de dados armazenados, firewall, atualizações de segurança automáticas, e um log de quem fez o quê.
As principais tarefas que o sistema operacional gerenciaA proteção de memória mantém cada aplicativo em seu próprio bloco de memória
Como a gestão de memória e de processos suporta multitarefa (um favorito de quatro pontos). A gestão de memória carrega vários programas na memória ao mesmo tempo, cada um em sua própria área protegida, e acompanha quais endereços pertencem a quais; a gestão de processos compartilha o processador entre eles — cada processo roda por uma fatia de tempo, o SO salva seu estado e alterna para o próximo, e a alternância é tão rápida que todos os programas parecem rodar juntos. Interrupções permitem que o SO retome o processador de um processo sempre que um dispositivo precisar de atenção.
Interrupções. Uma interrupção de hardware 硬件中断 vem de um dispositivo: uma tecla pressionada, um clique do mouse, uma impressora sem papel, um disco terminando uma transferência, uma falha de energia. Uma interrupção de software 软件中断 vem de um programa: divisão por zero, uma instrução inválida, uma tentativa de usar memória que não pertence, ou uma solicitação de serviço do SO. O manipulador de interrupções 中断处理程序 do SO salva o estado do processo em execução, lida com a interrupção e depois restaura o processo (o tópico 4 cobre o detalhe busca–execução).
Software utilitário
Programas utilitários 实用程序 são software de sistema que mantêm, reparam ou otimizam o computador em vez de fazer a tarefa do usuário; o examinador aceita "realiza uma tarefa específica de manutenção que melhora o desempenho ou a segurança". A maioria dos SOs embute estes:
Programas utilitários: antivírus, backup, compressão e desfragmentação
formatador de disco — prepara um disco novo (ou apaga um antigo) para uso: configura seu sistema de arquivos e partições, apagando quaisquer dados existentes.
verificador de vírus (antivírus 杀毒软件) — varre arquivos e memória, compara código contra um banco de dados de assinaturas 签名 de vírus conhecidos e vigia comportamentos suspeitos, então isola ou exclui o que encontrar; roda em um cronograma e em cada download, e precisa ser atualizado conforme novos vírus aparecem.
software de desfragmentação (desfragmentador de disco 碎片整理) — um disco rígido armazena um arquivo em quaisquer blocos livres que encontre, então após muitas salvamentos e exclusões um arquivo fica espalhado (fragmentado 碎片化) pelos pratos e a cabeça de leitura/escrita deve pular entre as peças. O desfragmentador move as peças de cada arquivo lado a lado e junta o espaço livre em uma única região, para que arquivos carreguem mais rápido e novos arquivos não fiquem fragmentados. Não necessário em um SSD, que não tem cabeça móvel.
análise de conteúdo do disco / software de reparo de disco — mostra o que está usando o espaço do disco (arquivos grandes, duplicados ou temporários) para que possam ser removidos; encontra e repara setores defeituosos, clusters perdidos e erros de sistema de arquivos.
compressão de arquivos (compressão 压缩) — encolhe arquivos para que ocupem menos armazenamento e transfiram mais rápido; arquivagem agrupa muitos arquivos em um.
software de backup (backup 备份) — copia arquivos para outro meio (disco externo, rede, nuvem) em um cronograma para que os dados possam ser restaurados após perda, corrupção ou ataque de ransomware; uma cópia completa é seguida por backups incrementais 增量备份 de apenas o que mudou.
um firewall 防火墙 (filtra tráfego de rede por regras) e ferramentas de criptografia, para segurança; um monitor do sistema e atualizações automáticas.
Embutir estes com o SO economiza ao usuário a instalação de cada um.
Qual utilitário faz o quê.Desempenho: desfragmentação (acesso a arquivos mais rápido), reparo de disco (um disco com erros é lento ou falha), análise de conteúdo do disco (espaço livre ao excluir lixo), compressão (mais cabe no disco). Segurança: verificador de vírus, firewall, criptografia e backup (a única recuperação de ransomware). Uma questão "trace uma linha" associa cada utilitário a exatamente um propósito — aprenda os pares acima e use os nomes do programa de estudos.
Exemplo resolvido. Explique como a desfragmentação pode melhorar o desempenho de um computador (3 pontos).
Com o tempo um arquivo é armazenado em blocos espalhados pelo disco rígido, então lê-lo precisa de muitos movimentos da cabeça de leitura/escrita. O desfragmentador rearranja os blocos para que cada arquivo seja armazenado contigüemente e o espaço livre esteja junto. Arquivos são então lidos com menos movimentos de cabeça, então carregam mais rápido, e novos arquivos podem ser escritos em um espaço contínuo.
Explore · Explorar
Onde o sistema operacional se situa
Toque em cada camada. O SO é a camada do meio — ele fica entre seus aplicativos e o hardware, compartilhando a máquina seguramente para que programas nunca toquem o hardware diretamente.
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.
Português
Uma biblioteca de programas 程序库 é código pré-escrito (subrotinas 子程序, classes, módulos) que programas reutilizam em vez de escrevê-lo eles mesmos — ex.: uma biblioteca matemática, uma biblioteca de rede, uma biblioteca de gráficos.
Um novo programa reutilizando rotinas prontas de bibliotecas
Benefícios: economiza tempo (código pronto), confiável (bem testado, amplamente utilizado) e padronizado (comportamento consistente).
A lista de benefícios para o examinador, do ponto de vista do desenvolvedor. As rotinas da biblioteca 库例程 já estão escritas e testadas, portanto o desenvolvimento é mais rápido e barato; são confiáveis e, por serem usadas por muitos programas, largely error-free; o desenvolvedor não precisa de especialização naquela área (gráficos, compressão, criptografia, busca de caminho); o programa é mais fácil de manter porque o código comum fica em um único lugar; e toda uma equipe pode usar as mesmas rotinas, garantindo resultados consistentes. Desvantagens: uma rotina pode não fazer exatamente o que você precisa e você não pode alterá-la; seu programa depende da biblioteca estar disponível, correta e segura — um bug ou uma falha de segurança na biblioteca é um bug no seu programa; e você precisa aprender como chamá-la.
uma biblioteca estática 静态库 é copiada para o executável no tempo de compilação (funciona isoladamente, mas maior e precisa ser recompilada para atualização).
uma biblioteca dinâmica 动态库 (DLL, Biblioteca de Ligação Dinâmica; .so) é carregada em tempo de execução (executáveis menores, compartilhada por muitos programas, atualizada uma vez para todos).
Estática: a biblioteca é copiada para o executável. Dinâmica: um arquivo de biblioteca compartilhada é carregado no tempo de execução
Arquivos de Dynamic Link Library (DLL). Uma DLL é uma biblioteca que é carregada na memória apenas quando um programa a chama, no tempo de execução, e permanece como um arquivo separado em vez de ser copiada para o executável. Benefícios: o executável é menor; vários programas em execução compartilham uma cópia da DLL na memória; uma DLL pode ser atualizada (correção de bug, novo dispositivo) sem recompilar os programas que a utilizam; e a memória é usada apenas enquanto a rotina estiver necessária. Desvantagens: o programa não funcionará se a DLL estiver ausente, movida ou for a versão errada; uma DLL atualizada pode quebrar um programa que dependia do comportamento antigo; e uma DLL falsa colocada no seu lugar roda com os direitos do programa.
Exemplo resolvido. Uma equipe escreve o software para um robô de restaurante e usa uma biblioteca de programas que inclui uma rotina para encontrar o caminho mais curto entre mesas. Explique dois benefícios e uma desvantagem para a equipe.
Benefícios: a rotina já está escrita e testada, então a equipe economiza tempo e pode confiar no resultado; a equipe não precisa entender algoritmos de busca de caminho e pode gastar o tempo nas funcionalidades próprias do robô. Desvantagem: a rotina pode não lidar exatamente com as necessidades do restaurante (mover cadeiras, corredores de sentido único) e a equipe não pode alterá-la, então podem ter que contornar suas limitações.
Explore · Explorar
Laboratório de conceitos de computação
Classifique exemplos concretos pelo conceito de computação que eles demonstram.
5.2
Language translators · Tradutores de linguagem
Syllabus · Programa
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
Português
Os candidatos devem ser capazes de:
Notas e orientações
Demonstre compreensão da necessidade de: • software ensamblador para a tradução de um programa em linguagem assemble • um compilador para a tradução de um programa em linguagem de alto nível • um intérprete para a tradução e execução de um programa em linguagem de alto nível
Explique os benefícios e desvantagens do uso de um compilador ou intérprete e justifique o uso de cada um
Demonstre consciência de que programas em linguagem de alto nível podem ser parcialmente compilados e parcialmente interpretados, como Java (modo console)
Descreva características encontradas num Ambiente de Desenvolvimento Integrado (IDE) típico
Incluindo: • para codificação, incluindo prompts sensíveis ao contexto • para deteção inicial de erros, incluindo verificações de sintaxe dinâmicas • para apresentação, incluindo formatação automática, expansão e contração de blocos de código • para depuração, incluindo passo a passo, pontos de interrupção, i.e., variáveis, expressões, janela de relatório
Source: Cambridge International syllabus · Fonte: Programa 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.
Português
Você escreve código-fonte; o computador executa código de máquina 机器码. Um tradutor 翻译器 converte entre eles.
Montador
Um montador 汇编器 traduz linguagem de montagem 汇编语言 em código de máquina: cada instrução mnemônica (LDD, ADD, JMP) torna-se exatamente uma instrução de código de máquina, e endereços simbólicos e rótulos são substituídos por endereços reais. É necessário porque o processador executa apenas código de máquina, e a linguagem de montagem é usada onde o programador precisa de controle direto do hardware (sistemas embarcados, drivers de dispositivos).
Compilador
Um compilador 编译器 traduz um programa de alto nível em código de máquina uma vez, antes de ser executado.
ele relata todos os erros no tempo de compilação; uma vez limpo, produz um executável 可执行文件 independente que roda sem o compilador instalado e pode ser executado muitas vezes.
geralmente mais rápido no tempo de execução (nenhuma tradução durante a execução), mas atrelado a uma CPU/SO — recompilar para cada plataforma.
A descrição de duas marcas: um compilador traduz o programa inteiro de alto nível em código de máquina (código objeto 目标代码) antes de ser executado, produz um arquivo executável e relata todos os erros de sintaxe juntos como uma lista no final da tradução. Ele não executa o programa.
Interpretador
Um interpretador 解释器 traduz e executa um programa de alto nível linha por linha, não produzindo nenhum executável.
ele relata um erro quando chega nessa linha, depois para; você pode corrigi-lo e continuar — bom para desenvolvimento.
o interpretador deve estar instalado para executar o programa; geralmente mais lento (cada execução re-traduz), mas fácil de portar entre plataformas.
A descrição de duas marcas: um interpretador traduz uma declaração do programa de alto nível por vez e a executa imediatamente antes de passar para a próxima; nenhum arquivo executável é produzido; ele para no primeiro erro encontrado e o relata. Tanto o código-fonte quanto o interpretador devem estar presentes sempre que o programa for executado.
Um compilador traduz uma vez em um programa independente; um interpretador traduz linha por linha, em cada execução
Escolhendo entre eles
Use um compilador quando:
Use um interpretador quando:
velocidade no tempo de execução importa
você quer ciclos rápidos de edição–execução
distribuir para usuários sem ferramentas de desenvolvimento
escrever scripts multiplataforma
o programa roda muitas vezes
o programa é pequeno ou rodado uma única vez
ensinar iniciantes
Benefícios e desvantagens, conforme a lista do gabarito.
compilador
interpretador
velocidade de execução
rápida — já é código de máquina
lenta — traduzida em cada execução
o que o usuário precisa
apenas o executável; sem tradutor, e o código-fonte permanece privado
o código-fonte e o interpretador
encontrar erros
todos os erros listados de uma vez, após a tradução do programa inteiro
cada erro relatado na linha onde ocorre, à medida que você desenvolve
alterar o código
recompilar o programa inteiro após cada alteração
editar e executar novamente imediatamente
portabilidade
código de máquina roda em apenas uma plataforma; recompilar para cada
a mesma fonte roda em qualquer lugar que exista um interpretador
Exemplo resolvido. Um desenvolvedor usa um interpretador enquanto escreve um programa e um compilador quando termina. Explique como cada um é usado (4 marcas).
Durante o desenvolvimento, o interpretador executa o programa parcialmente escrito imediatamente, sem esperar por uma tradução completa; ao encontrar um erro, ele relata a linha, então o desenvolvedor corrige e executa novamente imediatamente — um ciclo rápido de edição–execução que facilita o debugging. Quando o programa está terminado, o compilador traduz todo o programa em um executável que roda mais rápido, não precisa de tradutor no computador do usuário e não revela o código-fonte, podendo ser vendido ao público.
Híbrido: Java
Java é compilado em bytecode 字节码 (uma forma intermediária independente de plataforma), que uma máquina virtual 虚拟机 (a JVM) então interpreta — ou usa compilação just-in-time 即时编译 para transformar partes quentes em código nativo. Assim, erros são capturados cedo, o bytecode roda em qualquer lugar com uma JVM (
A frase do syllabus é "parcialmente compilado e parcialmente interpretado": a etapa do compilador captura erros de sintaxe e produz bytecode compacto e portátil 可移植的; a etapa de interpretação permite que esse único arquivo de bytecode seja executado em qualquer máquina que tenha uma máquina virtual, ao custo de alguma velocidade. Java em modo console (um programa de texto executado pela linha de comando) é o exemplo do syllabus.
Java compila para bytecode portátil que qualquer JVM executa — escreva uma vez, execute em qualquer lugar
Exemplo resolvido. O código-fonte Java é compilado em bytecode, que uma JVM então interpreta. Por que usar ambos, em vez de compilar diretamente para código de máquina? Um compilador produz código de máquina para um processador e sistema operacional, então um programa compilado em uma máquina não funcionará em outra. O compilador do Java, em vez disso, visa uma máquina virtual, então o bytecode que ele produz é idêntico em todos os lugares; cada plataforma então fornece sua própria JVM para interpretar esse bytecode em suas próprias instruções nativas. Um único arquivo compilado, portanto, funciona em qualquer lugar onde exista uma JVM - "escreva uma vez, execute em qualquer lugar". O preço é a velocidade: interpretar bytecode é mais lento do que executar código nativo, razão pela qual uma JVM real também usa compilação JIT para transformar bytecode frequentemente executado em código nativo enquanto o programa roda. Nomeie ambos os lados - os pontos são pela portabilidade comprada ao custo da velocidade.
Explore · Explorar
O caminho do compilador: código-fonte para programa em execução
Passe por como um compilador funciona — traduzindo todo o programa uma vez, antes de executar. Contraste com um interpretador, que traduz e executa uma linha de cada vez.
Integrated Development Environment (IDE) · Ambiente de Desenvolvimento 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.
Um ambiente de desenvolvimento integrado 集成开发环境 (IDE) reúne as ferramentas para escrever, testar e depurar código em um único aplicativo:
Um IDE agrupa o editor, um botão Executar e um depurador
O syllabus agrupa as funcionalidades em quatro tipos. Aprenda qual funcionalidade pertence a qual, porque as perguntas pedem para classificá-las e descrever uma de cada grupo.
Para codificação:prompts sensíveis ao contexto 上下文相关提示 — conforme você digita, o IDE exibe os identificadores, palavras-chave ou parâmetros que se encaixam naquele ponto do código; auto-complete 自动补letina completa o nome para você; indentação automática e correspondência de colchetes mantêm o layout correto enquanto você digita.
Para detecção inicial de erros:verificações de sintaxe dinâmicas 动态语法检查 — o editor verifica a sintaxe enquanto você digita e sublinha ou destaca um erro imediatamente, antes que o programa seja traduzido; após a tradução, mensagens de erro com números de linha.
Para apresentação:prettyprint 代码美化 — palavras-chave, identificadores, strings e comentários mostrados em cores ou fontes diferentes (destaque de sintaxe 语法高亮) com indentação consistente, para que a estrutura seja visível à primeira vista; expandir e recolher blocos de código — ocultar o corpo de um loop, um IF ou uma subrotina para ver o contorno.
Para depuração:breakpoints 断点 — o programa pausa ao atingir uma linha marcada; single stepping 单步执行 — a partir da pausa, execute uma linha por vez; uma janela que mostra os valores atuais de variáveis e expressões à medida que mudam; e uma report window 报告窗口 que lista erros, avisos e saída.
Outras funcionalidades: integração com tradutor (compilar ou executar com um atalho, erros mostrados em linha), um debugger 调试器 que aciona as funcionalidades de depuração acima, integração com version control 版本 controle (git), gerenciamento de projetos, sistema de ajuda, ferramentas de refactoring 重构 (renomeação segura) e integração com unit test 单元测试.
As funcionalidades da IDE apresentam os nomes do syllabus, nos locais onde você os veria na tela
Uma IDE acelera o desenvolvimento ao colocar escrever → executar → depurar → corrigir atrás de uma única interface. IDEs comuns: Visual Studio, PyCharm, Eclipse, VS Code.
Um debugger: defina um breakpoint, execute, então pause para inspecionar variáveis e faça single stepping pelo código
Exemplo resolvido. Uma função Calculate() retorna um valor inesperado quando o programa é executado. Descreva como as funcionalidades de depuração de uma IDE típica ajudam a encontrar a causa (4 pontos).
Defina um breakpoint na primeira linha de Calculate(), para que o programa pause lá em vez de continuar executando. Em seguida, faça single-step pela função uma linha por vez. Após cada passo, leia os valores das variáveis e de qualquer expressão que você tenha pedido à IDE para watch, e compare-os com os valores esperados; a primeira linha após a qual um valor está errado é onde está o erro lógico. A report window mostra qualquer mensagem de erro de tempo de execução e a saída produzida até então.
Exemplo resolvido. Coloque cada funcionalidade no seu grupo do syllabus: prettyprint, context-sensitive prompt, dynamic syntax check, breakpoint, expand/collapse code blocks, report window.
Definitions the examiner accepts · Definições aceitas pelo 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
Português
Uma questão de definição é avaliada contra wording fixo. Aprenda estas exatamente, e dê apenas uma resposta.
Termo
Definição
sistema operacional
software que gerencia o hardware e recursos do computador e fornece uma interface entre o usuário, os programas de aplicativo e o hardware
software utilitário
software de sistema que executa uma tarefa específica para manter, otimizar ou proteger o computador, como um verificador de vírus ou desfragmentador
biblioteca de programas
conjunto de rotinas pré-escritas e testadas (subrotinas, classes, módulos) que um programa pode usar em vez de escrever as próprias
Dynamic Link Library (DLL)
uma biblioteca de programas cujas rotinas são carregadas na memória apenas quando o programa as chama, em tempo de execução, e são compartilhadas entre programas
assembler
tradutor que converte um programa de linguagem de montagem em código de máquina, uma instrução por instrução
compiler
tradutor que converte todo um programa de linguagem de alto nível em código de máquina antes de ser executado, produzindo um arquivo executável
interpreter
tradutor que traduz e executa um programa de linguagem de alto nível uma declaração por vez
integrated development environment
aplicativo único que fornece as ferramentas para escrever, traduzir, executar e depurar um programa
context-sensitive prompt
pop-up que sugere identificadores, palavras-chave ou parâmetros que se encaixam no ponto atual do código
dynamic syntax check
verifica a sintaxe do código à medida que é digitado e sinaliza um erro antes que o programa seja traduzido
prettyprint
exibe o código com palavras-chave, identificadores e comentários em cores ou fontes diferentes e com indentação consistente
breakpoint
linha marcada na qual o programa em execução pausa para que as variáveis possam ser inspecionadas
single stepping
executa um programa pausado uma declaração por vez sob o controle do programador
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
Exam tips · Dicas de prova
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.
Português
Liste as tarefas do SO pelos seus nomes do syllabus (gestão de memória, processo, hardware, arquivos e segurança) e diga o que cada uma faz — "gerencia recursos" sozinho é muito vago.
Compare compiler vs interpreter vs assembler: o que cada um traduz, quando o traduz e como os erros são relatados.
Explique o que uma IDE oferece usando os grupos do syllabus: coding, detecção inicial de erros, apresentação, depuração.
Uma resposta de "benefício para o desenvolvedor" nomeia a economia do desenvolvedor: tempo, custo, competência, confiabilidade ou manutenção. Um "drawback" nomeia uma dependência: disponibilidade, versão, adequação, segurança.
Para "descrever a operação de" um tradutor, dê três coisas: o que é traduzido (programa inteiro ou uma declaração), quando (antes de executar ou enquanto executa) e como os erros são relatados (todos de uma vez ou no primeiro erro).
Erros comuns
Escrever "o OS controla o computador" ou "gerencia recursos" sem exemplo de tarefa. Cada ponto é uma tarefa nomeada com o que ela faz.
Dizer que um interpreter "compila linha por linha". Um interpreter traduz e executa cada declaração; ele nunca produz um executável.
Dizer que um compiler executa o programa. Ele apenas traduz; o executável roda depois, sem o compiler.
Colocar uma DLL "dentro" do executável. Isso é uma biblioteca estática; uma DLL permanece um arquivo separado carregado em tempo de execução.
Dizer que a desfragmentação "exclui" ou "comprime" arquivos, ou que é necessária em SSDs. Ela apenas move blocos para que cada arquivo seja armazenado contiguamente.
Classificar prettyprint ou contrair blocos sob "depuração". Eles são funcionalidades de apresentação; depuração refere-se a breakpoints, single stepping, watching variables e report window.
Interactive lessons on this topic · Aulas interativas sobre este tópico
Work through it step by step, with instant-check exercises. · Passe por ele passo a passo, com exercícios de verificação instantânea.
Pick one and the site follows you — notes, papers, videos and practice all open on it. · Escolha uma e o site te seguirá — notas, provas, vídeos e prática abrirão nela.
Type to search notes, lessons, code, vocabulary and past-paper questions across every subject. · Digite para pesquisar notas, aulas, código, vocabulário e questões de provas anteriores em todas as disciplinas.