8-900-374-94-44
[email protected]
Slide Image
Меню

С компиляция – Процесс компиляции программ на C++ / Sandbox / Habr

Раздельная компиляция в С/С++ / Алгоритмы и программные решения / Сообщество EasyElectronics.ru

Для компиляции программ, чей исходный код разделен на несколько файлов, в С используется механизм раздельной компиляции. Однако, далеко не все понимают, как он работает, что порождает кучу однотипных вопросов и ошибок, особенно у тех, кто раньше работал с языками с модульной компиляцией (Object Pascal/Delphi, Java, C# и другие) не особо вникая в суть и различия этих механизмов.

Под символами в этой статье я понимаю именованные сущности программы — функции, переменные и т.п.
Основная идея раздельной компиляции — процесс трансляции кода разделяется на два этапа:
  1. Компиляция отдельных файлов исходного кода в объектные файлы. Причем файлы компилируются независимо — компилятор работает только с одним файлом и ему глубоко плевать на все остальные. Поэтому каждый файл должен быть полностью самодостаточен и содержать определения всех используемых в нем символов.
  2. Линковка (связывание) скомпилированных файлов. На этом этапе машинный код из всех объектных файлов объединяется в один исполнимый файл и разрешаются все ссылки на символы. Причем информация о том, где оные символы искать в объектных файлах отсутствует.

В результате, чтобы в одном файле работать с сущностями из другого файла — необходимо продублировать в нем объявления этих сущностей. Разумеется, вручную это делать крайне неудобно, потому были придуманы включаемые (они же заголовочные) файлы. В них выносится описание символов, после чего такой файл включается и в файл, где реализуются описанные символы, и во все файлы, где они используются. Благодаря этому устраняется необходимость ручного копирования и синхронизации объявлений. Но связь между отдельными файлами кода тем не менее не добавляется. Просто устраняется дублирование информации.

Именно поэтому, по одному лишь исходнику нельзя определить, какие файлы он требует для удовлетворения зависимостей. Их нужно отдельно, вручную, указать линковщику. По этой причине появились системы сборки — они занимаются тем, что следят за обновлением файлов, перекомпилируют обновившиеся и указывают линковщику, какие файлы нужно связать. Позже, с появлением IDE появилась необходимость в хранении информации о взаимосвязях файлов — так появились проекты. По сути — просто список исходных файлов, которые нужно откомпилировать и связать, а также информация о настройках компилятора/линковщика/IDE.

Примерно здесь у пришедших с модульных языков начинаются проблемы. Дело в том, что модуль содержит полную информацию о своих взаимосвязях — что и откуда он берет и что предоставляет. Поэтому объявления uses MySuperLib вполне достаточно для присоединения к программе нового модуля. Однако директива #include <MySuperLib.h> — далеко не аналог этого объявления, она лишь включит файл с определениями. А тот факт, что программа использует эту библиотеку, придется отдельно указать линковщику — напрямую, через систему сборки или проект. Отсюда и типичный вопрос — «я подключил gl.h, а оно говорит „символ glBegin не найден“, почему?».

Теперь о том, как осуществляется взаимосвязь между отдельными файлами. Для этого введено понятие внешнего символа — это такой символ, для которого есть определение (оно содержит необходимую информацию о том, как с ним работать — тип переменной, набор аргументов функции и т.п.), но нету собственно реализации символа. Встретив обращение к такому символу, компилятор работает с ним в соответствии с имеющимся определением, а вместо ссылки на него подставляет заметку линковщику — «вставь сюда ссылку на символ такой-то». Если символ в реальности будет иметь определение, отличное от указанного компилятору — трансляция пройдет успешно, но при запуске начнутся лулзы — порча памяти, порча стека и просто неведомые глюки. Именно поэтому символы объявляют в заголовочных файлах — чтобы не было нескольких объявлений, которые могут рассинхронизироваться.

Внешний символ объвляется ключевым словом extern. Именно оно указывает компилятору, что не надо искать реализацию этого символа (либо выделять под него место, если это переменная). Функции являются внешними по умолчанию, так что указывать для них extern — необязательно.

Следущая забавная вещь — множественные реализации символа. Поскольку символ определяется только собственным именем (в отличие от модульных языков, где указывается не только сам символ, но и откуда его брать) — когда линкер встречает несколько одноименных символов, реализованных в разных файлах, он не может определить к какому из них отсылается компилятор и выдает ошибку. Отсюда появились пляски, обеспечивающие уникальность имен — префиксы в С, пространства имен в С++.

Но кроме случайного совпадения имен символов в разных файлах есть еще одна причина появления этой ошибки — реализация символа в заголовочном файле. Если объявить переменную или функцию (полностью, а не только ее заголовок) — она окажется включена во все файлы, куда включен этот заголовочный файл и, так как есть и реализация — то и реализована в них всех. Ну а дальше, обнаружив реализации нескольких одноименных символов линкер выдаст ошибку. Поэтому в заголовочный файл помещают только extern-переменные и заголовки функций (за исключением inline функций — их на место вызова подставляет сам компилятор, и потому должен иметь их реализацию в момент компиляции). Еще забавней получается, если объявить статическую (static — глобальная, но видна только в том файле, где объявлена) переменную в заголовочнике — все скомпилируется без ошибок, но в каждом объектнике будет своя копия переменной, не связанная с другими, хотя подразумевалась одна глобальная переменная. Как результат появляется вопрос «а почему если я гружу текстуры в main.cpp, то все работает, а если в other.cpp — то текстуры не грузятся?».

Вот. Как-то примерно так. Стоит заметить, в С++ сей механизм усложнен и работает несколько иначе, но я недостаточно с этими отличиями знаком. Но, в первом приближении, он работает похоже.

P.S. Жду гнилых помидоров от neiver’а и других знатоков С :)

we.easyelectronics.ru

Компиляция — это… Что такое Компиляция?

  • КОМПИЛЯЦИЯ — (лат., этим. см. пред. слово). Книга или статья, содержание которой взято из других сочинений. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. КОМПИЛЯЦИЯ [лат. compilatio ограбление; накопление выписок, собрание… …   Словарь иностранных слов русского языка

  • компиляция — См. сочинение… Словарь русских синонимов и сходных по смыслу выражений. под. ред. Н. Абрамова, М.: Русские словари, 1999. компиляция книга, сочинение; компилирование; компоновка, составление Словарь русских синонимов …   Словарь синонимов

  • КОМПИЛЯЦИЯ — (от латинского compilatio, буквально ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, выполненная таким методом …   Современная энциклопедия

  • КОМПИЛЯЦИЯ — (от лат. compilatio букв. ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, составленная таким методом …   Большой Энциклопедический словарь

  • Компиляция — в программировании перевод программы с языка высокого уровня в машинный язык. Результатом компиляции является объектный файл с необходимыми внешними ссылками для компоновщика. См. также: Трансляторы Финансовый словарь Финам …   Финансовый словарь

  • Компиляция — (от лат. compilatio, букв. ограбление) составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, составленная таким методом. Политическая наука: Словарь… …   Политология. Словарь.

  • компиляция — и, ж. compilation f. 1. Сочинение, построенное на заимствовании материалов, изложении результатов чужих трудов без самостоятельной разработки источников. БАС 1.Эта книга представляет собой полезную компиляцию новейших марксистских источников для… …   Исторический словарь галлицизмов русского языка

  • Компиляция — (от латинского compilatio, буквально ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, выполненная таким методом.   …   Иллюстрированный энциклопедический словарь

  • КОМПИЛЯЦИЯ — (от лат. compilatio, букв. ограбление) сочинительство на основе чужих исследований или произведений (литературная К.) без самостоятельной обработки источников; работа, составленная таким методом …   Юридический словарь

  • КОМПИЛЯЦИЯ

    — КОМПИЛЯЦИЯ, компиляции, жен. (лат. compilatio ограбление) (книжн.). 1. Сочинение (преим. научное), представляющее собой сводку и изложение уже обнародованных трудов, без самостоятельной обработки источников. Эта книга представляет собой полезную… …   Толковый словарь Ушакова

  • dic.academic.ru

    Компиляция (программирование) — это… Что такое Компиляция (программирование)?

    Компиля́тор —

    • Программа, предназначенная для трансляции высокоуровневого языка в абсолютный код или, иногда, в язык ассемблера. Входной информацией для компилятора (исходный код) является описание алгоритма или программа на проблемно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).[5]

    Компиляция

    • Трансляция программы на язык, близкий к машинному.[3][2]
    • Трансляция программы, составленной на исходном языке, в объектный модуль. Осуществляется
      компилятором
      .[2]

    Компилировать — проводить трансляцию машинной программы с проблемно-ориентированного языка на машинно-ориентированный язык.[3]

    Виды компиляторов[2]

    • Векторизующий. Транслирует исходный код в машинный код компьютеров, оснащённых векторным процессором.
    • Гибкий. Составлен по модульному принципу, управляется таблицами и запрограммирован на языке высокого уровня или реализован с помощью компилятора компиляторов.
    • Диалоговый. См.: диалоговый транслятор.
    • Инкрементальный. Повторно транслирует фрагменты программы и дополнения к ней без перекомпиляции всей программы.
    • Интерпретирующий (пошаговый). Последовательно выполняет независимую компиляцию каждого отдельного оператора (команды) исходной программы.
    • Компилятор компиляторов. Транслятор, воспринимающий формальное описание языка программирования и генерирующий компилятор для этого языка.
    • Отладочный. Устраняет отдельные виды синтаксических ошибок.
    • Резидентный. Постоянно находится в основной памяти и доступен для повторного использования многими задачами.
    • Самокомпилируемый. Написан на том же языке, с которого осуществляется трансляция.
    • Универсальный. Основан на формальном описании синтаксиса и семантики входного языка. Составными частями такого компилятора являются: ядро, синтаксический и семантический загрузчики.

    Виды компиляции[2]

    • Пакетная. Компиляция нескольких исходных модулей в одном пункте задания.
    • Построчная. То же, что и интерпретация.
    • Условная. Компиляция, при которой транслируемый текст зависит от условий, заданных в исходной программе. Так, в зависимости от значения некоторой константы, можно включать или выключать трансляцию части текста программы.

    Основы

    Большинство компиляторов переводит программу с некоторого высокоуровневого языка программирования в машинный код, который может быть непосредственно выполнен центральным процессором. Как правило, этот код также ориентирован на исполнение в среде конкретной операционной системы, поскольку использует предоставляемые ею возможности (системные вызовы, библиотеки функций). Архитектура (набор программно-аппаратных средств), для которой производится компиляция, называется целевой машиной.

    Некоторые компиляторы (например, низкоуровневом языке. Такой язык — байт-код — также можно считать языком машинных команд, поскольку он подлежит интерпретации виртуальной машиной. Например, для языка Java это JVM (язык виртуальной машины Java), или так называемый байт-код Java (вслед за ним все промежуточные низкоуровневые языки стали называть байт-кодами). Для языков программирования на платформе .NET Framework (C#, Managed C++, Visual Basic .NET и другие) — это MSIL (Microsoft Intermediate Language).

    Программа на байт-коде подлежит интерпретации виртуальной машиной, либо ещё одной компиляции уже в машинный код непосредственно перед исполнением. Последнее называется «Just-In-Time компиляция» (MSIL-код компилируется в код целевой машины также JIT-компилятором, а библиотеки .NET Framework компилируются заранее).

    Для каждой целевой машины (Apple и т. д.) и каждой операционной системы или семейства операционных систем, работающих на целевой машине, требуется написание своего компилятора. Существуют также так называемые кросс-компиляторы, позволяющие на одной машине и в среде одной ОС получать код, предназначенный для выполнения на другой целевой машине и/или в среде другой ОС. Кроме того, компиляторы могут быть оптимизированы под разные типы процессоров из одного семейства (путём использования специфичных для этих процессоров инструкций). Например, код, скомпилированный под процессоры семейства MMX, SSE2.

    Также существуют компиляторы, переводящие программу с языка высокого уровня на язык ассемблера.

    Существуют программы, которые решают обратную задачу — перевод программы с низкоуровневого языка на высокоуровневый. Этот процесс называют декомпиляцией, а программы — декомпиляторами. Но поскольку компиляция — это процесс с потерями, точно восстановить исходный код, скажем, на C++, в общем случае невозможно. Более эффективно декомпилируются программы в байт-кодах — например, существует довольно надёжный декомпилятор для Flash. Сходным процессом является дизассемблирование машинного кода в код на языке ассемблера, который всегда выполняется успешно. Связано это с тем, что между кодами машинных команд и командами ассемблера имеется практически однозначное соответствие.

    Структура компилятора

    Процесс компиляции состоит из следующих этапов:

    1. Лексический анализ. На этом этапе последовательность символов исходного файла преобразуется в последовательность лексем.
    2. Синтаксический (грамматический) анализ. Последовательность лексем преобразуется в дерево разбора.
    3. Семантический анализ. Дерево разбора обрабатывается с целью установления его семантики (смысла) — например, привязка идентификаторов к их декларациям, типам, проверка совместимости, определение типов выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным деревом разбора, новым деревом, абстрактным набором команд или чем-то ещё, удобным для дальнейшей обработки.
    4. Оптимизация. Выполняется удаление излишних конструкций и упрощение кода с сохранением его смысла. Оптимизация может быть на разных уровнях и этапах — например, над промежуточным кодом или над конечным машинным кодом.
    5. Генерация кода. Из промежуточного представления порождается код на целевом языке.

    В конкретных реализациях компиляторов эти этапы могут быть раздельны или совмещены в том или ином виде.

    Трансляция и компоновка

    Важной исторической особенностью компилятора, отражённой в его названии (англ. compile — собирать вместе, составлять), являлось то, что он мог производить и компоновку (то есть содержал две части — транслятор и компоновщик). Это связано с тем, что раздельная компиляция и компоновка как отдельная стадия сборки выделились значительно позже появления компиляторов, и многие популярные компиляторы (например, GCC) до сих пор физически объединены со своими компоновщиками. В связи с этим, вместо термина «компилятор» иногда используют термин «транслятор» как его синоним: либо в старой литературе, либо когда хотят подчеркнуть его способность переводить программу в машинный код (и наоборот, используют термин «компилятор» для подчёркивания способности собирать из многих файлов один).

    Интересные факты

    • На заре развития компьютеров первые компиляторы (трансляторы) называли «программирующими программами»[6] (так как в тот момент программой считался только машинный код, а «программирующая программа» была способна из человеческого текста сделать машинный код, то есть запрограммировать ЭВМ).

    Примечания

    1. ГОСТ 19781-83 // Вычислительная техника. Терминология: Справочное пособие. Выпуск 1 / Рецензент канд. техн. наук Ю. П. Селиванов. — М.: Издательство стандартов, 1989. — 168 с. — 55 000 экз. — ISBN 5-7050-0155-X
    2. 1 2 3 4 5 6 7 Першиков В. И., Савинков В. М. Толковый словарь по информатике / Рецензенты: канд. физ.-мат. наук А. С. Марков и д-р физ.-мат. наук И. В. Поттосин. — М.: Финансы и статистика, 1991. — 543 с. — 50 000 экз. — ISBN 5-279-00367-0
    3. 1 2 3 СТ ИСО 2382/7-77 // Вычислительная техника. Терминология. Указ. соч.
    4. Борковский А. Б. Англо-русский словарь по программированию и информатике (с толкованиями). — М.: Русский язык, 1990. — 335 с. — 50 050 (доп.) экз. — ISBN 5-200-01169-3
    5. Толковый словарь по вычислительным системам = Dictionary of Computing / Под ред. В. Иллингуорта и др.: Пер. с англ. А. К. Белоцкого и др.; Под ред. Е. К. Масловского. — М.: Машиностроение, 1990. — 560 с. — 70 000 (доп.) экз. — ISBN 5-217-00617-X (СССР), ISBN 0-19-853913-4 (Великобритания)
    6. Н. А. Криницкий, Г. А. Миронов, Г. Д. Фролов. Программирование / Под ред. М. Р. Шура-Бура. — М.: Государственное издательство физико-математической литературы, 1963.

    См. также

    Реализации компиляторов

    Литература

    • Альфред В. Ахо, Моника С. Лам, Рави Сети, Джеффри Д. Ульман. Компиляторы: принципы, технологии и инструментарий = Compilers: Principles, Techniques, and Tools. — 2-е изд. — М.: Вильямс, 2008. — ISBN 978-5-8459-1349-4
    • Робин Хантер. Основные концепции компиляторов = The Essence of Compilers. — М.: Вильямс, 2002. — С. 256. — ISBN 0-13-727835-7
    • Хантер Р. Проектирование и конструирование компиляторов / Пер. с англ. С. М. Круговой. — М.: Финансы и статистика, 1984. — 232 с.
    • Д. Креншоу. Давайте создадим компилятор!.

    Wikimedia Foundation. 2010.

    dic.academic.ru

    КОМПИЛЯЦИЯ — это… Что такое КОМПИЛЯЦИЯ?

  • Компиляция — Компиляция: В Викисловаре есть статья «компиляция» Компиляция (литература) (лат.  …   Википедия

  • КОМПИЛЯЦИЯ — (лат., этим. см. пред. слово). Книга или статья, содержание которой взято из других сочинений. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. КОМПИЛЯЦИЯ [лат. compilatio ограбление; накопление выписок, собрание… …   Словарь иностранных слов русского языка

  • компиляция — См. сочинение… Словарь русских синонимов и сходных по смыслу выражений. под. ред. Н. Абрамова, М.: Русские словари, 1999. компиляция книга, сочинение; компилирование; компоновка, составление Словарь русских синонимов …   Словарь синонимов

  • КОМПИЛЯЦИЯ — (от латинского compilatio, буквально ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, выполненная таким методом …   Современная энциклопедия

  • КОМПИЛЯЦИЯ — (от лат. compilatio букв. ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, составленная таким методом …   Большой Энциклопедический словарь

  • Компиляция — в программировании перевод программы с языка высокого уровня в машинный язык. Результатом компиляции является объектный файл с необходимыми внешними ссылками для компоновщика. См. также: Трансляторы Финансовый словарь Финам …   Финансовый словарь

  • Компиляция — (от лат. compilatio, букв. ограбление) составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, составленная таким методом. Политическая наука: Словарь… …   Политология. Словарь.

  • компиляция — и, ж. compilation f. 1. Сочинение, построенное на заимствовании материалов, изложении результатов чужих трудов без самостоятельной разработки источников. БАС 1.Эта книга представляет собой полезную компиляцию новейших марксистских источников для… …   Исторический словарь галлицизмов русского языка

  • Компиляция — (от латинского compilatio, буквально ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, выполненная таким методом.   …   Иллюстрированный энциклопедический словарь

  • КОМПИЛЯЦИЯ — (от лат. compilatio, букв. ограбление) сочинительство на основе чужих исследований или произведений (литературная К.) без самостоятельной обработки источников; работа, составленная таким методом …   Юридический словарь

  • dic.academic.ru

    КОМПИЛЯЦИЯ — это… Что такое КОМПИЛЯЦИЯ?

  • Компиляция — Компиляция: В Викисловаре есть статья «компиляция» Компиляция (литература) (лат.  …   Википедия

  • КОМПИЛЯЦИЯ — (лат., этим. см. пред. слово). Книга или статья, содержание которой взято из других сочинений. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. КОМПИЛЯЦИЯ [лат. compilatio ограбление; накопление выписок, собрание… …   Словарь иностранных слов русского языка

  • компиляция — См. сочинение… Словарь русских синонимов и сходных по смыслу выражений. под. ред. Н. Абрамова, М.: Русские словари, 1999. компиляция книга, сочинение; компилирование; компоновка, составление Словарь русских синонимов …   Словарь синонимов

  • КОМПИЛЯЦИЯ — (от латинского compilatio, буквально ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, выполненная таким методом …   Современная энциклопедия

  • КОМПИЛЯЦИЯ — (от лат. compilatio букв. ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, составленная таким методом …   Большой Энциклопедический словарь

  • Компиляция — в программировании перевод программы с языка высокого уровня в машинный язык. Результатом компиляции является объектный файл с необходимыми внешними ссылками для компоновщика. См. также: Трансляторы Финансовый словарь Финам …   Финансовый словарь

  • Компиляция — (от лат. compilatio, букв. ограбление) составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, составленная таким методом. Политическая наука: Словарь… …   Политология. Словарь.

  • компиляция — и, ж. compilation f. 1. Сочинение, построенное на заимствовании материалов, изложении результатов чужих трудов без самостоятельной разработки источников. БАС 1.Эта книга представляет собой полезную компиляцию новейших марксистских источников для… …   Исторический словарь галлицизмов русского языка

  • Компиляция — (от латинского compilatio, буквально ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, выполненная таким методом.   …   Иллюстрированный энциклопедический словарь

  • КОМПИЛЯЦИЯ — КОМПИЛЯЦИЯ, компиляции, жен. (лат. compilatio ограбление) (книжн.). 1. Сочинение (преим. научное), представляющее собой сводку и изложение уже обнародованных трудов, без самостоятельной обработки источников. Эта книга представляет собой полезную… …   Толковый словарь Ушакова

  • dic.academic.ru

    КОМПИЛЯЦИЯ — это… Что такое КОМПИЛЯЦИЯ?

  • Компиляция — Компиляция: В Викисловаре есть статья «компиляция» Компиляция (литература) (лат.  …   Википедия

  • КОМПИЛЯЦИЯ — (лат., этим. см. пред. слово). Книга или статья, содержание которой взято из других сочинений. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. КОМПИЛЯЦИЯ [лат. compilatio ограбление; накопление выписок, собрание… …   Словарь иностранных слов русского языка

  • компиляция — См. сочинение… Словарь русских синонимов и сходных по смыслу выражений. под. ред. Н. Абрамова, М.: Русские словари, 1999. компиляция книга, сочинение; компилирование; компоновка, составление Словарь русских синонимов …   Словарь синонимов

  • КОМПИЛЯЦИЯ — (от лат. compilatio букв. ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, составленная таким методом …   Большой Энциклопедический словарь

  • Компиляция — в программировании перевод программы с языка высокого уровня в машинный язык. Результатом компиляции является объектный файл с необходимыми внешними ссылками для компоновщика. См. также: Трансляторы Финансовый словарь Финам …   Финансовый словарь

  • Компиляция — (от лат. compilatio, букв. ограбление) составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, составленная таким методом. Политическая наука: Словарь… …   Политология. Словарь.

  • компиляция — и, ж. compilation f. 1. Сочинение, построенное на заимствовании материалов, изложении результатов чужих трудов без самостоятельной разработки источников. БАС 1.Эта книга представляет собой полезную компиляцию новейших марксистских источников для… …   Исторический словарь галлицизмов русского языка

  • Компиляция — (от латинского compilatio, буквально ограбление), составление сочинений на основе чужих исследований или чужих произведений (литературная компиляция) без самостоятельной обработки источников; работа, выполненная таким методом.   …   Иллюстрированный энциклопедический словарь

  • КОМПИЛЯЦИЯ — (от лат. compilatio, букв. ограбление) сочинительство на основе чужих исследований или произведений (литературная К.) без самостоятельной обработки источников; работа, составленная таким методом …   Юридический словарь

  • КОМПИЛЯЦИЯ — КОМПИЛЯЦИЯ, компиляции, жен. (лат. compilatio ограбление) (книжн.). 1. Сочинение (преим. научное), представляющее собой сводку и изложение уже обнародованных трудов, без самостоятельной обработки источников. Эта книга представляет собой полезную… …   Толковый словарь Ушакова

  • dic.academic.ru

    компиляция — Викисловарь

    В Википедии есть страница «компиляция».

    Содержание

    • 1 Русский
      • 1.1 Морфологические и синтаксические свойства
      • 1.2 Произношение
      • 1.3 Семантические свойства
        • 1.3.1 Значение
        • 1.3.2 Синонимы
        • 1.3.3 Антонимы
        • 1.3.4 Гиперонимы
        • 1.3.5 Гипонимы
      • 1.4 Родственные слова
      • 1.5 Этимология
      • 1.6 Фразеологизмы и устойчивые сочетания
      • 1.7 Перевод

    Морфологические и синтаксические свойства

    падежед. ч.мн. ч.
    Им.компиля́циякомпиля́ции
    Р.компиля́циикомпиля́ций
    Д.компиля́циикомпиля́циям
    В.компиля́циюкомпиля́ции
    Тв.компиля́цией
    компиля́циею
    компиля́циями
    Пр.компиля́циикомпиля́циях

    ком-пи-ля́-ци·я

    Существительное, неодушевлённое, женский род, 1-е склонение (тип склонения 7a по классификации А. А. Зализняка).

    Корень: -компил-; суффикс: -яциj; окончание: [Тихонов, 1996].

    Произношение

    ru.wiktionary.org

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *