Вы никогда его не видели и никогда не увидите — но он всегда там. За каждым запущенным приложением, каждым сохранённым файлом, каждым касанием экрана стоит невидимое…
English narration · English + 中文 subtitles burned in · Английское озвучивание · Английский + китайские субтитры (встроенные)
5.1
Operating systems · Операционные системы
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
Русский
Кандидаты должны уметь:
Примечания и рекомендации
Объясните, почему компьютерной системе требуется Операционная система (OS)
Объясните ключевые задачи управления, выполняемые Операционной системой
Включая управление памятью, управление файлами, управление безопасностью, управление оборудованием (ввод/вывод/периферия), управление процессами
Проявите понимание необходимости типичного программного обеспечения утилит, предоставляемого с Операционной системой
Включая форматирование дисков, антивирусные сканеры, программы дефрагментации, анализ содержания диска / программное восстановление дисков, сжатие файлов, программное обеспечение резервного копирования
Проявите понимание библиотек программ
Включая: • программное обеспечение в разработке часто создается с использованием существующего кода из библиотек программ • преимущества для разработчика при использовании файлов библиотек, включая динамически подключаемые библиотеки (DLL)
Source: Cambridge International syllabus · Источник: Программа 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.
Русский
Почему компьютеру нужна ОС
Аппаратное обеспечение само по себе может только извлекать и выполнять инструкции — оно ничего не знает о файлах, программах, сетях или пользователях. Операционная система (OS) — это программный слой, который:
управляет аппаратным обеспечением (процессор, памятью, I/O, хранилищем) для запускаемых программ.
предоставляет услуги (файловой системе, сети, учётным записям) через понятный интерфейс, поэтому программам не нужно взаимодействовать с оборудованием напрямую.
позволяет нескольким программам безопасно использовать оборудование — каждой выделяется справедливое время процессора, а также обеспечивается изоляция памяти, чтобы программы не мешали друг другу.
Без операционной системы каждая программа требовала бы собственных драйверов, и одновременно могла бы работать только одна программа.
"Опишите назначение операционной системы" — список на 5 баллов. Операционная система: (1) обеспечивает интерфейс между пользователем и оборудованием; (2) скрывает сложность оборудования от пользователя и прикладных программ; (3) управляет ресурсами оборудования — временем процессора, памятью, хранилищем и устройствами ввода-вывода — и распределяет их между программами; (4) загружает прикладное программное обеспечение в память и выполняет его, предоставляя каждой программе одинаковую платформу для работы; (5) позволяет несколько программам работать одновременно (многозадачность), сохраняя при этом безопасность программ и данных пользователей. Укажите пять различных пунктов; формулировки вроде «она запускает компьютер» или «она управляет ресурсами» без детализации не оцениваются.
Операционная система рабочего стола управляет экраном, файлами и программами для пользователяТелефону она нужна так же сильно: это мобильная операционная система Android
Ключевые задачи управления
Программа курса перечисляет пять. Каждый пункт ниже описывает реальное действие ОС, которое требуется в вопросе типа «описать».
управление памятью — выделение памяти каждой загружаемой программе, разделение памяти программ (защита памяти), чтобы одна не перезаписывала другую, освобождение памяти после завершения программы, обмен страницами между оперативной памятью (RAM) и вторичным хранилищем (диском) (виртуальная память / страничная виртуализация), что позволяет держать открытыми больше программ, чем физически вмещает оперативная память.
управление процессами — работающая программа является процессом. ОС создаёт и завершает процессы, определяет, какой процесс получит процессор следующим (планирование) и на какой промежуток времени (тайм-слайс), переключается между ними, разрешает конфликты, когда два процесса требуют одного ресурса, и может завершить зависший процесс.
управление оборудованием (устройствами ввода-вывода и периферией) — взаимодействие с каждым устройством через его драйвер устройства, постановка в очередь и буферизация данных для медленных устройств, таких как принтеры, обработка прерываний от устройств и разделение одного устройства между несколькими программами.
управление файлами — создание, переименование, копирование, перемещение и удаление файлов и папок, поддержание структуры каталогов и реестра мест хранения файлов на диске, выделение дискового пространства файлам и соблюдение прав доступа (чтение / запись / выполнение) для каждого пользователя.
управление безопасностью — учётные записи пользователей и пароли (аутентификация), права доступа, шифрование хранимых данных, межсетевой экран, автоматические обновления безопасности и журнал действий пользователей.
Основные функции, которые выполняет операционная системаЗащита памяти удерживает каждое приложение в собственном блоке памяти
Как управление памятью и процессами поддерживают многозадачность (популярный вопрос на 4 балла). Управление памятью загружает несколько программ в память одновременно, каждая в своей защищённой области, и отслеживает принадлежность адресов; управление процессами разделяет процессор между ними — каждый процесс работает на тайм-слайсе, ОС сохраняет его состояние и переключается к следующему, причём переключение происходит настолько быстро, что все программы кажутся запущенными одновременно. Прерывания позволяют ОС забрать процессор у процесса, когда устройству требуется внимание.
Прерывания.Аппаратное прерывание исходит от устройства: нажатие клавиши, клик мышью, закончилась бумага в принтере, завершение передачи данных на диске, сбой питания. Программное прерывание исходит от программы: деление на ноль, недопустимая инструкция, попытка использования чужой памяти или запрос услуги ОС. Обработчик прерываний ОС сохраняет состояние текущего процесса, обрабатывает прерывание, затем восстанавливает процесс (тема 4 раскрывает детали выборки и выполнения).
Системное утилитное ПО
Утилиты — это системное программное обеспечение, которое обслуживает, ремонтирует или оптимизирует компьютер вместо выполнения задач пользователя; экзаменатор принимает определение «выполняет конкретную задачу обслуживания, повышающую производительность или безопасность». Большинство ОС включают эти утилиты:
Утилиты: антивирус, бэкап, архивация и дефрагментация
форматировщик диска — подготовка нового диска (или очистка старого) для использования: настройка файловой системы и разделов, удаление существующих данных.
антивирус — сканирование файлов и памяти, сравнение кода с базой известных сигнатур вирусов и наблюдение за подозрительным поведением, последующая изоляция или удаление обнаруженного; запуск по расписанию и при каждой загрузке, необходимость обновления при появлении новых вирусов.
программа для дефрагментации (дефрагментатор диска) — жесткий диск хранит файл в любых свободных блоках, которые находит, поэтому после множества операций сохранения и удаления файл оказывается разбросанным (фрагментированным) по пластине, и головка чтения/записи должна перемещаться между частями. Дефрагментатор размещает части каждого файла рядом друг с другом и объединяет свободное пространство в одну область, благодаря чему файлы загружаются быстрее, а новые файлы не фрагментируются. Не требуется на SSD, так как у него нет движущихся головок.
анализ содержимого диска / программа восстановления диска — показывает, что занимает место на диске (большие, дублирующиеся или временные файлы), чтобы их можно было удалить; находит и исправляет поврежденные сектора, потерянные кластеры и ошибки файловой системы.
сжатие файлов (архивирование) — уменьшает размер файлов, чтобы они занимали меньше места и передавались быстрее; архивация объединяет множество файлов в один.
программа резервного копирования (backup) — копирует файлы на другой носитель (внешний диск, сеть, облако) по расписанию, чтобы данные можно было восстановить после потери, повреждения или атаки шифровальщика-вымогателя; за полным копированием следуют инкрементальные бэкапы, включающие только измененные данные.
фаервол (фильтрует сетевой трафик по правилам) и инструменты шифрования, для безопасности; системный монитор и автоматические обновления.
Комплектация этими утилитами с операционной системой экономит пользователю время на установку каждой из них по отдельности.
Что делает каждая утилита.Производительность: дефрагментация (ускорение доступа к файлам), восстановление диска (диск с ошибками работает медленно или выходит из строя), анализ содержимого (освобождение места путем удаления мусора), сжатие (увеличение объема хранимых данных). Безопасность: антивирус, фаервол, шифрование и резервное копирование (единственный способ восстановления от шифровальщика-вымогателя). Задания типа «проведите линию» предполагают сопоставление каждой утилиты с одной конкретной целью — выучите пары выше и используйте названия из учебной программы.
Разобранный пример. Объясните, как дефрагментация может улучшить производительность компьютера (3 балла).
Со временем файл хранится в блоках, разбросанных по жесткому диску, поэтому его чтение требует множества перемещений головки чтения/записи. Дефрагментатор упорядочивает блоки так, чтобы каждый файл хранился непрерывно (контекстно), а свободное пространство было объединено. Файлы затем читаются с меньшим числом перемещений головок, поэтому загружаются быстрее, а новые файлы могут быть записаны в одно непрерывное пространство.
Explore · Исследовать
Where the operating system sits · Где находится операционная система
Tap each layer. The OS is the middle layer — it sits between your applications and the hardware, sharing the machine safely so programs never touch the hardware directly. · Нажмите на каждый слой. ОС — средний слой: она находится между вашими приложениями и аппаратным обеспечением, безопасно разделяя машину так, чтобы программы никогда не обращались к железу напрямую.
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.
Русский
Библиотека программ — это заранее написанный код (подпрограммы, классы, модули), который программы используют повторно вместо того, чтобы писать его самостоятельно — например, математическая библиотека, сетевая библиотека, графическая библиотека.
Новая программа использует готовые routines из библиотек
Преимущества: экономия времени (готовый код), надежность (хорошо протестировано, широко используется) и стандартизация (предсказуемое поведение).
Список преимуществ для разработчика, который оценивает экзаменатор.Рутинные функции библиотеки уже написаны и протестированы, поэтому разработка идет быстрее и дешевле; они надежны и, поскольку используются многими программами, практически лишены ошибок; разработчику не нужна экспертиза в этой области (графика, сжатие, шифрование, поиск пути); программу легче поддерживать, так как общий код находится в одном месте; и целая команда может использовать одни и те же рутинные функции, обеспечивая согласованные результаты. Недостатки: рутинная функция может выполнять не ровно то, что нужно, и изменить ее нельзя; ваша программа зависит от наличия, корректности и безопасности библиотеки — баг или уязвимость в библиотеке становятся багом вашей программы; и вам нужно научиться вызывать эту функцию.
статическая библиотека копируется в исполняемый файл во время компиляции (работает автономно, но больше по размеру и требует пересборки для обновления).
динамическая библиотека (DLL, Dynamic Link Library; .so) загружается во время выполнения (меньший размер исполняемых файлов, общая для многих программ, обновляется один раз для всех).
Статическая: библиотека копируется в исполняемый файл. Динамическая: общий файл библиотеки загружается во время выполнения
Файлы динамических линкованных библиотек (DLL). DLL — это библиотека, которая загружается в память только тогда, когда программа обращается к ней, во время выполнения, и остается отдельным файлом, а не копируется в исполняемый файл. Преимущества: исполняемый файл становится меньше; несколько запущенных программ разделяют одну копию DLL в памяти; DLL можно обновить (исправление ошибки, новое устройство) без перекомпиляции использующих ее программ; и память используется только до тех пор, пока нужна рутинная функция. Недостатки: программа не запустится, если DLL отсутствует, перемещена или имеет неправильную версию; обновленная DLL может нарушить работу программы, рассчитанной на старое поведение; и поддельная DLL, подставленная на ее место, будет работать с правами программы.
Разобранный пример. Команда, пишущая программное обеспечение для робота-официанта, использует библиотеку программ, содержащую функцию поиска кратчайшего пути между столами. Опишите два преимущества и один недостаток для команды.
Преимущества: функция уже написана и протестирована, поэтому команда экономит время и может доверять результату; команде не нужно самому разбираться в алгоритмах поиска пути и можно потратить время на собственные особенности робота. Недостаток: функция может не учитывать точные потребности ресторана (перемещение стульев, односторонние проходы), и команда не может изменить ее, поэтому им придется обходить её ограничения.
Classify concrete examples by the computing idea they demonstrate. · Классифицируйте конкретные примеры по вычислительной идее, которую они демонстрируют.
5.2
Language translators · Языковые трансляторы
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
Русский
Кандидаты должны уметь:
Примечания и рекомендации
Проявите понимание необходимости: • программного обеспечения ассемблера для перевода программы на языке ассемблера • компилятора для перевода программы на языке высокого уровня • интерпретатора для перевода и выполнения программы на языке высокого уровня
Объясните преимущества и недостатки использования компилятора или интерпретатора и обоснуйте применение каждого из них
Проявите осведомленность о том, что программы на языках высокого уровня могут частично компилироваться и частично интерпретироваться, например Java (консольный режим)
Включая: • для написания кода, включая контекстно-зависимые подсказки • для первичного обнаружения ошибок, включая динамические проверки синтаксиса • для представления, включая форматирование кода (prettyprint), расширение и сворачивание блоков кода • для отладки, включая пошаговое выполнение, точки останова, т.е. окна переменных, выражений, отчетов
Source: Cambridge International syllabus · Источник: Программа 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.
Русский
Вы пишете исходный код; компьютер выполняет машинный код. Транслятор преобразует между ними.
Ассемблер
Ассемблер переводит язык ассемблера в машинный код: каждая мнемоническая инструкция (LDD, ADD, JMP) преобразуется ровно в одну машинную инструкцию, а символьные адреса и метки заменяются реальными адресами. Это необходимо потому, что процессор выполняет только машинный код, а язык ассемблера используется там, где программисту требуется прямой контроль над аппаратным обеспечением (встроенные системы, драйверы устройств).
Компилятор
Компилятор переводит программу высокого уровня в машинный код один раз, до запуска.
он отображает все ошибки на этапе компиляции; после проверки без ошибок создает самодостаточный исполняемый файл, который работает без установленной компиляции и может запускаться многократно.
обычно быстрее во время выполнения (нет перевода во время работы), но привязан к конкретному CPU/ОС — требует перекомпиляции для каждой платформы.
Описание на два балла: компилятор переводит всю программу высокого уровня в машинный код (объектный код) до запуска, создает исполняемый файл и выводит все синтаксические ошибки единым списком в конце процесса перевода. Он не выполняет саму программу.
Интерпретатор
Интерпретатор переводит и выполняет программу высокого уровня по одной строке за раз, не создавая исполняемого файла.
он отображает ошибку когда достигает этой строки, затем останавливается; можно исправить её и продолжить работу — это удобно для разработки.
для запуска программы интерпретатор должен быть установлен; обычно работает медленнее (каждый запуск повторяет перевод), но легко переносим между платформами.
Описание на два балла: интерпретатор переводит одно выражение программы высокого уровня за раз и выполняет его немедленно перед переходом к следующему; исполняемый файл не создается; он останавливается на первой встреченной ошибке и отображает её. И исходный код, и интерпретатор должны присутствовать каждый раз при запуске программы.
Компилятор переводит один раз в самостоятельную программу; интерпретатор переводит построчно при каждом запуске
Выбор между ними
Использовать компилятор когда:
Использовать интерпретатор когда:
важна скорость выполнения
нужны быстрые циклы редактирования–запуска
распространение среди пользователей без инструментов разработки
написание кроссплатформенных скриптов
программа запускается многократно
программа небольшая или запускается один раз
обучение новичков
Преимущества и недостатки, согласно критериям оценки.
компилятор
интерпретатор
скорость выполнения
быстрая — уже машинный код
медленная — переводится при каждом запуске
что нужно пользователю
только исполняемый файл; нет переводчика, исходный код остается приватным
исходный код и интерпретатор
поиск ошибок
все ошибки перечислены разом после перевода всей программы
каждая ошибка сообщается на строке, где она возникает, в процессе разработки
изменение кода
перекompилировать всю программу после каждого изменения
отредактировать и запустить снова немедленно
переносимость
машинный код работает только на одной платформе; нужна перекомпиляция для каждой
тот же исходный код работает везде, где есть интерпретатор
Разобранный пример. Разработчик использует интерпретатор во время написания программы и компилятор после завершения. Объясните, как используется каждый из них (4 балла).
Во время разработки интерпретатор запускает частично написанную программу сразу, не дожидаясь полной компиляции; при возникновении ошибки он указывает строку, поэтому разработчик исправляет её и запускает снова немедленно — быстрый цикл редактирования–запуска, облегчающий отладку. Когда программа завершена, компилятор переводит всю программу в исполняемый файл, который работает быстрее, не требует наличия переводчика на компьютере пользователя и не раскрывает исходный код, поэтому ее можно продавать публике.
Гибридный подход: Java
Java компилируется в байт-код (независимую от платформы промежуточную форму), который затем интерпретирует виртуальная машина (JVM) — или использует компиляцию «на лету» (just-in-time), превращая часто выполняемые фрагменты в нативный код. Таким образом, ошибки ловятся рано, байт-код работает везде с JVM («напиши один раз, запусти везде»), а长时间 работающие программы достигают скорости, близкой к нативной. C# и Python используют аналогичные подходы.
Фраза из учебной программы гласит: «частично компилируется и частично интерпретируется»: этап компиляции ловит синтаксические ошибки и создает компактный, переносимый байт-код; этап интерпретации позволяет этому одному файлу байт-кода работать на любой машине с виртуальной машиной ценой некоторой потери скорости. Пример из учебной программы — консольный режим Java (текстовая программа, запускаемая из командной строки).
Java компилируется в переносимый байт-код, который выполняет любая JVM — напиши один раз, запусти везде
Разобранный пример. Исходный код Java компилируется в байт-код, который затем интерпретирует JVM. Почему используются оба метода вместо прямой компиляции в машинный код? Компилятор производит машинный код для одного процессора и операционной системы, поэтому программа, скомпилированная на одной машине, не запустится на другой. Компилятор Java вместо этого таргетирует виртуальную машину, поэтому производимый им байт-код идентичен повсюду; каждая платформа предоставляет собственную JVM для интерпретации этого байт-кода в свои нативные инструкции. Один скомпилированный файл поэтому работает везде, где существует JVM — «напиши один раз, запусти везде». Цена — скорость: интерпретация байт-кода медленнее выполнения нативного кода, поэтому настоящая JVM также использует JIT-компиляцию для превращения часто выполняемого байт-кода в нативный код во время работы программы. Назовите обе стороны — баллы начисляются за переносимость цена которой — скорость.}
Explore · Исследовать
The compiler route: source to running program · Путь компилятора: от исходного кода к работающей программе
Step through how a compiler works — translating the whole program once, before it runs. Contrast it with an interpreter, which translates and runs one line at a time. · Разберитесь, как работает компилятор — переводит всю программу целиком перед запуском. Сопоставьте с интерпретатором, который переводит и выполняет строку за строкой.
Integrated Development Environment (IDE) · Среда интегрированной разработки (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.
Среда интегрированной разработки (IDE) объединяет инструменты для написания, тестирования и отладки кода в одном приложении:
Среда IDE объединяет редактор, кнопку «Запуск» и отладчик
Программа курса группирует функции на четыре вида. Изучите, к какой группе относится та или иная функция, так как вопросы требуют их классифицировать и описать по одной из каждой группы.
Для написания кода:контекстно-зависимые подсказки — при вводе текста IDE предлагает идентификаторы, ключевые слова или параметры, подходящие для текущего места в коде; автодополнение дописывает название за вас; автоматическое форматирование и сопоставление скобок сохраняют структуру при вводе.
Для первичного обнаружения ошибок:динамические проверки синтаксиса — редактор проверяет синтаксис по мере ввода и немедленно подчеркивает или выделяет ошибку до компиляции программы; после компиляции появляются сообщения об ошибках с номерами строк.
Для представления:подсветка синтаксиса (prettyprint) — ключевые слова, идентификаторы, строки и комментарии отображаются разными цветами или шрифтами (синтаксическая подсветка) с единообразным отступом, чтобы структура была видна сразу; разворачивание и сворачивание блоков кода — скрывают тело цикла, условия IF или подпрограммы, оставляя только каркас.
Для отладки:точки останова — программа останавливается при достижении помеченной строки; пошаговое выполнение — из состояния паузы выполнить код по одной строке; окно, показывающее текущие значения переменных и выражений по мере их изменения; и окно отчетов, перечисляющее ошибки, предупреждения и вывод.**
Другие функции: интеграция транслятора (компиляция или запуск одной клавишей, ошибки отображаются прямо в коде), отладчик, управляющий вышеописанными функциями отладки, интеграция системы контроля версий (git), управление проектом, система помощи, инструменты рефакторинга (безопасное переименование) и интеграция модульного тестирования.
Функции среды IDE, названные согласно программе курса, расположены там, где они обычно отображаются на экране
Среда IDE ускоряет разработку, объединяя процессы написания → запуска → отладки → исправления в едином интерфейсе. Популярные IDE: Visual Studio, PyCharm, Eclipse, VS Code.
Отладчик: установите точку останова, запустите, затем остановитесь для осмотра переменных и выполните код построчно
Разобранное решение. Функция Calculate() возвращает неожиданный результат во время выполнения программы. Опишите, как функции отладки типичной среды IDE помогают найти причину (4 балла).
Установите точку останова на первой строке Calculate(), чтобы программа остановилась там вместо полного выполнения. Затем выполните функцию построчно. После каждого шага прочитайте значения переменных и любых выражений, которые вы поручили IDE наблюдать, и сравните их с ожидаемыми значениями; первая строка, после которой значение оказывается неверным, указывает на место логической ошибки. Окно отчетов показывает любое сообщение об ошибке времени выполнения и уже выведенный результат.
Разобранное решение. Распределите каждую функцию по её группе в программе курса: prettyprint, контекстно-зависимая подсказка, динамическая проверка синтаксиса, точка останова, разворачивание/сворачивание блоков кода, окно отчетов.
Definitions the examiner accepts · Определения, принимаемые экзаменатором
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
Русский
Вопросы на определение оцениваются по фиксированной формулировке. Выучите их точно и дайте только один ответ.
Термин
Определение
операционная система
программное обеспечение, управляющее аппаратным обеспечением компьютера и ресурсами, а также обеспечивающее интерфейс между пользователем, прикладными программами и аппаратным обеспечением
служебное программное обеспечение
системное программное обеспечение, выполняющее конкретную задачу для обслуживания, оптимизации или защиты компьютера, например, антивирус или дефрагментатор
библиотека программ
набор заранее написанных, протестированных рутин (подпрограмм, классов, модулей), которые программа может использовать вместо написания собственных
Динамически подключаемая библиотека (DLL)
библиотека программ, рутины которой загружаются в память только тогда, когда программа обращается к ним во время выполнения, и которые являются общими для нескольких программ
ассемблер
транслятор, преобразующий программу на языке ассемблера в машинный код, одна инструкция на каждую инструкцию
компилятор
транслятор, преобразующий всю программу на высокоуровневом языке в машинный код перед ее выполнением, создавая исполняемый файл
интерпретатор
транслятор, который переводит и выполняет программу на высокоуровневом языке по одному оператору за раз
среда интегрированной разработки
единое приложение, предоставляющее инструменты для написания, компиляции, запуска и отладки программы
контекстно-зависимая подсказка
всплывающее окно, предлагающее идентификаторы, ключевые слова или параметры, подходящие для текущего места в коде
динамическая проверка синтаксиса
проверка синтаксиса кода по мере его ввода и выявление ошибки до того, как программа будет переведена в машинный код
prettyprint
отображение кода с ключевыми словами, идентификаторами и комментариями разных цветов или шрифтов с единообразным отступом
точка останова
помеченная строка, на которой выполняющаяся программа останавливается для осмотра переменных
пошаговое выполнение
выполнение остановленной программы по одному оператору за раз под контролем программиста
5.2
Exam tips · Советы для экзамена
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.
Русский
Перечислите задачи ОС по названиям из учебной программы (управление памятью, процессами, оборудованием, файлами и безопасностью) и объясните, что каждая из них выполняет — фразы «управляет ресурсами» недостаточно.
Сравните компилятор, интерпретатор и ассемблер: что каждый из них переводит, когда это делает и как сообщает об ошибках.
Объясните, что предоставляет IDE, используя группы из учебной программы: написание кода, первичное обнаружение ошибок, представление данных, отладка.
Ответ «преимущество для разработчика» указывает на выгоду для него: экономия времени, средств, компетенций, надёжность или простота поддержки. «Недостаток» указывает на зависимость: доступность, версия, совместимость, безопасность.
Для задания «опишите работу» переводчика укажите три вещи: что переводится (весь код или одна строка), когда (до запуска или во время выполнения) и как сообщаются ошибки (все сразу или только при первой ошибке).
Распространенные ошибки
Фразы «ОС управляет компьютером» или «управляет ресурсами» без примера конкретной задачи. За каждое очко нужно назвать конкретную задачу и её функцию.
Утверждение, что интерпретатор «компилирует построчно». Интерпретатор переводит и выполняет каждую строку; он никогда не создаёт исполняемый файл.
Утверждение, что компилятор запускает программу. Он только переводит; исполняемый файл запускается позже, уже без участия компилятора.
Размещение DLL «внутри» исполняемого файла. Это статическая библиотека; DLL остаётся отдельным файлом, который загружается во время выполнения.
Утверждения, что дефрагментация «удаляет» или «сжимает» файлы, или что она нужна на SSD. Она лишь перемещает блоки так, чтобы каждый файл хранился непрерывно.
Форматирование вывода (prettyprint) или сворачивание блоков в разделе «отладка». Это функции представления данных; отладка — это точки останова, пошаговое выполнение, отслеживание переменных и окно сообщений.
Interactive lessons on this topic · Интерактивные уроки по этой теме
Work through it step by step, with instant-check exercises. · Пройдите его шаг за шагом с упражнениями мгновенной проверки.
Pick one and the site follows you — notes, papers, videos and practice all open on it. · Выберите один, и сайт будет вести вас — конспекты, работы, видео и практика откроются там.
Type to search notes, lessons, code, vocabulary and past-paper questions across every subject. · Введите запрос для поиска заметок, уроков, кода, словаря и вопросов с реальных экзаменов по всем предметам.