Код

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Код (франц. code, від лат. codex) (англ. code, нім. Schlüssel m, Kennzahl f, Kode m) — зведення законів, система умовних знаків (символів, позначень) для передачі, обробки та зберігання (запам'ятовування) різноманітної інформації.

Код у літературознавстві — система знаків (символів), за допомогою яких текст передається, сприймається і зберігається. Код служить для забезпечення комунікації, тому мусить бути зрозумілим усім учасникам комунікаційного процесу.

При комунікації й обробці інформації, код — система правил для перетворення інформації такі як літера, слово, звук, зображення чи жест, іноді скорочується або шифрується. Першим прикладом коду є винахід мови, який дозволив людині, за допомогою мови повідомляти іншим, що людина бачила, чула, відчувала чи думала. Але промова є обмеженою комунікацією через невелику відстань на яку лунає голос, та через обмеженість аудиторії, яка може почути промову. Винахід письма, яке перетворює розмовну мову у візуальні символи, розширив спектр комунікацій в часі і просторі.

Процес кодування перетворює інформацію від джерела у символи для зв'язку або зберігання. Декодування — зворотній процес, який перетворює символи в початковий код, який одержувач розуміє.

Однією з причин використання кодування є забезпечення зв'язку в місцях, де звичайна розмовна мова, усні або письмові повідомлення, ускладнені або неможливі.

Теорія[ред.ред. код]

У теорії інформації та інформатиці, код зазвичай розглядається як алгоритм, який однозначно представляє символи з деякої абетки джерела, закодованих рядків, які можуть бути в іншій абетці. Розширення коду для представлення послідовності символів над абеткою джерела відбувається шляхом об'єднанням закодованих рядків.

Перш ніж дати математично точне визначення, наведемо короткий приклад. Відображення C = \{\, a\mapsto 0, b\mapsto 01, c\mapsto 011\,\} є кодом. Вихідний код написаний з використанням абетки {a, b,c} і чия мета використовувати абетку {0,1}. За допомогою розширення коду, рядок з кодом 0011001011 може бути розбитий на кодові слова, як 0011 0 01 011, а ті, у свою чергу, можуть бути розшифровані як послідовність вихідних символів acabc.

За допомогою термінів з формальної теорії мови, точне математичне визначення цього поняття полягає у наступному: Нехай S і T дві кінцеві множини є вихідною та цільовою абетками відповідно. Код C\colon S \to T^* є загальна функція, що відображає кожний символ з S у послідовності символів з Т, і розширення C на гомоморфізм S^* в T^*, що, природно відображає кожну послідовність вихідних символів у послідовності цільових символів і є його розширенням.

Коди змінної довжини[ред.ред. код]

У цьому розділі ми розглянемо коди, які кодують кожне джерело (текст) символ і конкатенації таких кодових слів. Коди змінної довжини особливо корисні, коли текстові символи мають різні ймовірності.

Префікси кода з «приставкою власності» не мають дійсного коду для слова в системі, як префікс будь-якого іншого чинного кодового слова в наборі. Код Хаффмана є найвідомішим алгоритмом для отримання префіксів кодів. Префікси кода широко називаються «коди Хаффмана», навіть якщо код не був проведений алгоритмом Хаффмана.

Коди виправляючі помилки[ред.ред. код]

Коди також можуть бути використані для представлення даних у більш стійкий спосіб до помилок, у передачі або зберіганні. Цей «код» називається код корекції помилок. Приклади включають коди Гемінга, Ріда-Соломона, Ріда-Мaлера, Уолша-Адамара[ru], Бозе-Чоудхурі-Хоквінгема, Турбо-код[ru], Голея[ru], Гоппе, з низьким рівнем щільності перевірок на парність кодів та просторово-часові коди. Коди, які виправляють помилки можуть бути оптимізовані для виявлення пакетних помилок, або випадкових помилок.

Приклади[ред.ред. код]

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

Коди можуть бути використані для стислості. Коли телеграфні повідомлення були мистецтвом у швидкості далекого зв'язку, складні системи комерційних кодів, у яких були закодовані повні фрази, окремі слова, були розроблені так, що телеграфістам ставали знайомі такі «слова», як BYOXO («Ви намагаєтеся вибратися з цього?»), LIOUY («Чому ви не відповіли на моє запитання?»), BMULD («Ви скунс!»), або AYYLU («Не зрозуміло закодовані слова, повторіть більш чітко.»). Кодові слова були вибрані з різних причин: довжина, вимова і т. д. Значення були обрані, щоб відповідати усвідомленим потребам: в комерційних переговорах, з військової точки зору для військових кодів, дипломатичні умови для дипломатичних кодів. Метою більшості з цих кодів була економія на вартості кабелів. Використання кодування даних для їх стиснення є передумовою комп'ютерної ери. Раннім прикладом є телеграф код Морзе де часто використовувані символи мають більш короткі розміри. Такі методи, як кодування Хаффмана зараз використовуються алгоритмами комп'ютерних стискань великих файлових даних, a більш компактна форма для зберігання або передачі.

Блетчлі Парк[ред.ред. код]

Під час Другої світової війни, в Блетчлі Парку був сайт головного підприємства розшифровки Сполученого Королівства, уряд кодексу та Cypher School, де були розшифровані шифри й коди кількох країн та усі найголовніші шифри, породжені німецькими машинами Енігма і Лоренца. Це місце було відоме як «В. Р.» для людей, які працювали там, а саме для багатьох членів Жіночої Королівської Військово-морської служби, які працювали в Блетчлі-Парк.

Кодування символів[ред.ред. код]

Найбільш широко відомий код передачі даних до сих пір (як уявлення символів) з використовуваних сьогодні є ASCII. В тій чи іншій версії, він використовується майже на всіх персональних комп'ютерах, терміналах, принтерах та на інших обладнаннях зв'язку. Він представляє 128 символів з ​​семи-бітових чисел, — які, як рядок із семи 1 і 0 (біти). В ASCII в нижньому регістрі завжди 1100001, у верхньому регістрі завжди 1000001, і так далі. Є багато інших кодувань, які представляють кожний персонаж по байту (зазвичай називають кодові сторінки), число точки коду (Юнікод) або послідовність байтів (UTF-8).

Генетичний код[ред.ред. код]

Генетичний код (ДНК)

Біологічні організми містять генетичний матеріал, який використовується для управління їх функцій та розвитку. Це ДНК, який містить блоки які названі генами, які можуть виробляти білки через код (генетичний код), в якому серії триплетів (кодони) з чотирьох можливих нуклеотидів переводяться в одну з двадцяти можливих амінокислот, а кодовані послідовності в відповідну послідовність амінокислот, які утворюють білок.

Використання в інших сферах[ред.ред. код]

В математиці, код Геделя був основою для доведення теореми Геделя про неповноту. Тут ідея в тому, щоб зіставити математичну нотацію для натурального числа (за допомогою Гьодель нумерації).

Є коди, що використовують кольори, як світлофор. У маркетингу, знижкові коди можуть бути використані для фінансових знижок або знижок при покупці продукту з інтернет-магазина. У військових умовах, специфічні звуки з корнетом використовуються для різних цілей: щоб відзначити деякі моменти дня, щоб командувати піхотою в полі бою, і т. д. Зв'язок системи відбувається із-за сенсорних дефектів, таких як мова жестів для глухих людей та шрифт Брайля для сліпих людей, які були засновані на русі, або тактильні коди.

Музичні бали є найбільш поширеним способом для кодування музики. Конкретні ігри, як шахи, мають свої власні системи кодів для запису матчів (шахової нотації).

Криптографія[ред.ред. код]

В історії криптографії, коди були для забезпечення конфіденційності повідомлень, хоча, останнім часом, замість них використовуються шифри.

Секретні коди, призначені, щоб приховати реальні повідомлення, починаючи від серйозного (головним чином в шпигунстві на військовій, дипломатичній, діловій тощо.) до тривіального (романи, ігри). Може бути будь-яким видом кодування уяви: квіти, ігрові карти, одяг, вентилятори, головні убори, мелодії, птахи і т. д.

Інші приклади[ред.ред. код]

Інші приклади кодування включають в себе:

  • Кодування (в пізнанні) на основі перцептивного процесу інтерпретації. З технічної точки зору, це комплекс, багатоступінчастих процесів перетворення щодо об'єктивного сенсорного введення (наприклад, світло, звук) в суб'єктивний значущий досвід.
  • Формат змістa — спеціальний формат кодування для перетворення певного типу даних в інформацію. Кодування тексту використовується у мові розмітки для полегшення обробки за допомогою комп'ютерів.
  • Електронне кодування — перетворення сигналу в оптимізований код для передачі або зберігання.
  • Кодування в пам'яті: процес перетворення відчуття в спогади.
  • Кодування в телебаченні : NTSC, PAL і SECAM
  • Розшифровка(Комп'ютерні науки)-методи декодування, методи в теорії зв'язку для декодування кодових слів, що передаються по шумних каналах. Цифрова обробка сигналів, вивчення сигналів, цифрове уявлення та методи обробки цих сигналів. Цифро-аналоговий перетворювач використовується аналоговою схемою для операцій декодування. Декодування звуків означає розшифрувати шаблони друку та перевести їх у звуки мови.

Коди та скорочення[ред.ред. код]

Скорочення та абревіатури можна вважати кодом, а в відчутті, всі мови і писемність є кодом людської думки.

Міжнародна асоціація повітряного транспорту, аеропорті коди, трибуквені коди використовуються для позначення аеропортів. Аналогічним чином використані коди станцій на залізницях, але, той же код може бути використаний для різних станцій, якщо вони знаходяться в різних країнах.

Іноді кодове слово досягає незалежного існування в той час, як оригінальний еквівалент чи фраза більше не має точне значення, віднесеного до кодового слова. Наприклад, '30' широко використовується в журналістиці і означає «кінець історії» та був використаний в інших контекстах для позначення «The End».

Див. також[ред.ред. код]

Література[ред.ред. код]

Посилання[ред.ред. код]