Один из самых простых методов, которые я использую для изучения новых тем, — это создание заметок по теме, а затем превращение этих заметок в вопросы и ответы. Запоминание ответов на вопросы кажется более естественным. Я смог запомнить эти 104 вопроса и ответа менее чем за несколько часов. Я хотел начать делать это для некоторых тем, которые я нахожу довольно интересными. Для начала вот несколько вопросов и ответов на тему «Концепции языка программирования» (PLC). Я читаю ваши мысли прямо сейчас и отвечаю: да, будет больше.
1. Назовите 3 причины для изучения ПЛК.
– Лучшее понимание современных языков программирования
– Развитие вычислительной техники
– Расширение возможностей для выражения идей
– Расширение возможностей для изучения нового языка программирования.
– Лучшее понимание того, какой язык программирования выбрать выберите.
2. Назовите 5 областей программирования и языков, наиболее подходящих для каждой из них.
- Научные (Fortran, ALGOL 60)
- Деловые (COBOL)
- ИИ (Lisp, Scheme, Prolog)
- Интернет (PHP, Java, JavaScript)
- Игры ( С, С++)
3. Каковы 4 критерия оценки языков программирования?
– Читаемость
– Возможность записи
– Надежность
– Стоимость
4. В надежности что подразумевается под общей простотой?
- Простой язык имеет относительно небольшое количество базовых конструкций.
5. Что такое множественность признаков?
- наличие нескольких способов выполнения одной и той же задачи. т. е. count++ или count = count + 1
6. Дайте определение ортогональности.
- Небольшой набор примитивных конструкций можно комбинировать для создания языковых структур данных и управления.
7. С чем тесно связана ортогональность?
- Простота
8. Правда или ложь? Излишняя простота может стать проблемой.
- Истинный
9. Правда или ложь? Слишком большая ортогональность может вызвать проблемы?
- Истинный
10. Приведите пример проблемы с типом данных.
- C89 не имеет логического типа, поэтому x = 1 неоднозначен и может означать либо x = целое число 1, либо x = true
11. Заполните слово Семантика (________) должно следовать непосредственно из __________ (форма)
- значение
- Синтаксис
12. Почему простота и ортогональность являются проблемой при написании?
- Большое количество функций может привести к неправильному использованию некоторых функций и неиспользованию превосходных функций.
13. Когда ортогональность помогает писать?
- Когда объекты не слишком ортогональны
14. Когда язык выразительный?
- Язык является выразительным, если он обладает свойствами, облегчающими выполнение общих задач.
15. Надежность… что такое проверка типов?
- Проверяет ошибки типа либо во время компиляции, либо во время выполнения
16. Когда предпочтительна проверка типов?
- Во время компиляции, поскольку проверка во время выполнения требует больших затрат.
17. Что такое обработка исключений?
- Перехват ошибок во время выполнения и забота об этих ошибках.
18. Что такое алиасинг?
- Наличие двух или более имен, присвоенных одному и тому же месту в памяти.
19. Как читабельность и возможность записи влияют на надежность?
- Если язык трудно читать, его трудно отлаживать. Если он написан неестественно, он, скорее всего, будет содержать ошибки.
20. Назовите несколько затрат, которые следует учитывать при оценке языка программирования.
- Стоимость обучения программистов
- Стоимость компиляции
- Стоимость исполнения
- Стоимость реализации
21. Что такое оптимизация и почему она считается фактором стоимости?
- Оптимизация — это попытка сэкономить время или место. Оптимизация увеличивает время компиляции.
22. Что в наибольшей степени влияет на языковые затраты?
- Надежность, техническое обслуживание и разработка программ
23. Назовите другие критерии оценки языков программирования.
- Универсальность
- Переносимость
- Четкость.
24. На основе какой архитектуры были разработаны самые популярные языки?
- Архитектура фон Неймана
25. Как называются языки, основанные на архитектуре фон Неймана?
- Императивные языки
26. На чем основаны императивные языки?
- Архитектура фон Неймана.
27. Что представляют имена переменных в императивном языке?
- ячейки памяти
28. Что представляют операторы присваивания в императивном языке?
- Перемещение данных из памяти в ЦП и обратно.
29. Назовите методологии проектирования программ.
– Проектирование сверху вниз или пошаговое уточнение
– Абстрагирование данных
– Объектно-ориентированное проектирование
30. Какой язык способствовал популяризации объектно-ориентированного программирования?
- Болтовня
31. Назовите четыре категории, в которые входят языки программирования.
- Императивность, Функциональность, Логика и Объектно-ориентированность
32. Опишите функциональный язык программирования.
- Возможность определять и вызывать функции.
33. Опишите логический язык.
- Содержит набор фактов и правил.
34. Объектно-ориентированные языки часто являются расширениями _______ _______.
- Императивные языки
35. Правда или ложь? Языки разметки — это языки программирования?
- Ложь
36. Назовите некоторые языковые компромиссы
– Надежность и стоимость исполнения
– Доступность записи и читабельность
– Возможность записи и надежность
37. Назовите один метод реализации для языка программирования.
- Сборник
38. Что такое компиляция?
- Процесс, в котором исходный код переводится компилятором на машинный язык.
39. В чем преимущество компиляции?
- Быстрое выполнение программы
40. Каковы фазы компилятора?
- Лексический анализатор, Синтаксический анализатор, Промежуточный генератор кода, Оптимизатор, Генератор кода
41. Что делает лексический анализатор?
- Отбрасывает комментарии и собирает символы в лексемы.
42. Что делает синтаксический анализатор?
- Проверяет наличие синтаксических ошибок и создает деревья разбора из лексем.
43. Что делает генератор промежуточного кода?
- Проверяет смысловые ошибки и переводит программу на промежуточный язык, аналогичный ассемблеру.
44. Что делает оптимизатор?
- Попытки сделать программу меньше и быстрее.
45. Что делает генератор кода?
- Переводит промежуточный код на машинный язык.
46. Правда или ложь? Все фазы компилятора используют таблицу символов.
- Истинный
47. Каково назначение компоновщика?
- Объединить код из разных модулей в единую программу
- Включить код для вызова библиотечных подпрограмм
- Включить код для связи с ОС
48. Что выдает компоновщик?
- Исполняемый образ
49. Что такое чистая интерпретация?
- Выполнение программы интерпретатором без перевода исходного кода в более низкую форму.
50. В чем преимущество интерпретации?
- Хорошо для отладки
51. Каковы некоторые недостатки интерпретации?
– Медленное выполнение
– Требуется больше места во время выполнения
52. Опишите гибридную систему реализации.
- Исходный код преобразуется в промежуточный код и отправляется интерпретатору.
53. Какой тип промежуточного кода создается компилятором Java?
- Байтовый код
54. Как называется интерпретатор Java?
- Виртуальная машина Java (JVM)
55. Какой тип компиляции выполняют интерпретаторы Java?
- Своевременная компиляция
56. Что такое своевременная компиляция?
- Перевод байтового кода в машинный код при выполнении
57. Какие языки программирования полагаются на препроцессор?
- С и С++
58. Что делает препроцессор?
– Берет встроенные команды из исходного кода и удаляет их перед компиляцией.
– Например, #include «myLib.h» копируется в исходный код.
59. Что такое среда программирования?
- Коллекция инструментов для разработки программного обеспечения.
60. Что такое IDE?
- Среда, предоставляющая набор интегрированных инструментов для доступа через пользовательский интерфейс.
61. Кто разработал Планкалкул?
- Конрад Цузе
62. На что годился Планкалкул?
- Хорошо для выражения вычислений.
63. Что означает Планкалкул?
- Расчет программы
64. Правда или ложь? Планкалкул так и не был реализован.
- Истинный
65. Какая самая простая структура данных в Планкалкуле?
- Один бит
66. Какие типы могут быть получены из одного бита в Планкалкуле?
- Плавающая точка и целое число
67. Заполните пропуск. В Планкалкуле с плавающей запятой использовалась нотация ______ ___________ и скрытый бит.
- Двойки-дополнение
68. Правда или ложь? В Plankalkul оператор if имеет необязательный оператор else.
- Ложь
69. Есть ли в Планкалкуле инструкция goto?
- No
70. Заполните пропуск. В Планкалкуле есть оператор for, похожий на тот, что в ________.
- Паскаль
71. Включал ли Планкалкул утверждения?
- Да
72. Что такое утверждения?
- Математические выражения, показывающие текущие отношения между программными переменными.
73. Какие проблемы машинного кода?
- Трудно читать
- Абсолютная адресация делает модификацию утомительной.
74. Назовите два псевдокодовых языка.
- Короткий код и код скорости
75. Кто разработал краткий код?
- Джон Мочли
76. Правда или ложь? Короткий код состоял из закодированных версий математических выражений.
- Истинный
77. Как назывались переменные в Short Code?
- С байт-парными кодами.
78. Был ли составлен или интерпретирован краткий код?
- интерпретируется
79. Как еще называли интерпретацию во времена Short Code?
- Автоматическое программирование
80. Кто разработал Speedcode?
- Джон Бэкус для IBM 701
81. Боинг 701 был расширен до виртуального _____ _____ ________.
- Трехточечный калькулятор
82. Правда или ложь? Speedcode был намного эффективнее машинного кода?
- Истинный
83. Кто разработал систему компиляции UNIVAC?
- Грейс Хоппер
84. Как назывались системы компиляции, разработанные Грейс Хоппер?
- А-0, А-1 и А-2
85. Что делали системы компиляции, разработанные Грейс Хоппер?
- Расширенные псевдокоды в машинный код.
86. Кто разработал Фортран?
- Джон Бэкус для IBM 704
87. Какова была основная цель компилятора Fortran?
- Скорость сгенерированного кода
88. Правда или ложь? Компилятор Фортрана был почти вдвое менее эффективным, чем то, что можно было бы сделать вручную.
- Истинный
89. Заполните пропуск. ________ был первым общепринятым компилируемым языком высокого уровня.
- Фортран
90. Правда или ложь. Fortran У меня было форматирование ввода/вывода.
- Истинный
91. Сколько символов может быть в имени переменной в Fortran I?
- Up to 6
92. Правда или ложь? В Фортране у меня были пользовательские подпрограммы.
- Истинный
93. Правда или ложь? Fortran У меня был оператор if/else.
- False, только оператор if
94. Как программисты объявили переменную как целое число в Fortrain I? Как насчет плавающей точки?
- Поскольку имя начинается с I, J, K, L, M или N, переменные неявно являются целыми. Все остальные были с плавающей запятой
95. Какая функция была добавлена в Fortran II?
- Независимая компиляция подпрограмм
96. Правда или ложь? Fortran III был самой успешной версией Fortran.
- Ложь. Фортран никогда не был широко распространен.
97. Какой была первая стандартизированная версия Фортрана? Какой год?
- Фортран IV в 1966 году.
98. Какие функции добавил Fortran IV?
- Явное объявление типа переменных
- Возможность передавать подпрограммы в качестве параметров другим подпрограммам
- Логическая конструкция IF
99. Когда Fortran получил ELSE на свой оператор IF?
- Фортран 77
100. Когда Фортран начал поддерживать строчные буквы?
- Фортран 90
101. Назовите другие функции, реализованные в Fortran 90.
- Рекурсия
- Динамические массивы, указатели и оператор множественного выбора
102. Что включала в себя стандартизация Fortran 90?
- Список функций, которые будут удалены
103. Когда Фортран получил объектно-ориентированные возможности?
- Фортран 2003
104. Назовите функцию, добавленную в Fortran 2008.
- Лучшая поддержка параллельного программирования
Хочу больше?
P1. 104 Вопросы и ответы по языку программирования
P2. 95 Вопросы и ответы по языку программирования
P3. 123 Вопросы и ответы по языку программирования
P4. 77 Вопросы и ответы по языку программирования
P5. 146 Вопросы и ответы по языку программирования
P6. 94 Вопросы и ответы по языку программирования
P7. 141 язык программирования. Вопросы и ответы