Хоча інші відповіді зазначають, що argv
походить від C, звідки у C з'явилася ідея називати масив "вектором"?
Безпосередньо, це прийшло з BCPL . Хоча це argv
стосується і вектора (рядкових) аргументів, у BCPL були рядки, збережені у векторах, але вони були рядковими літералами, і вони працювали як рядки Паскаля. Вектор мав два елементи: довжину в literal!0
та символи на literal!1
. За словами Клайва Пера , рядками маніпулювали, "розпаковуючи" їх у масиви символів, трансформуючи масив, а потім "перепаковуючи" їх у рядки: порівняйте це з C, де рядки є масивами символів.
Так, так, C використовував v для вектора, тому що щось інше робив раніше. Тепер, чи робив щось перед тим, як BCPL використовував вектор таким чином? BCPL саме по собі було спрощенням "Кембриджської [або комбінованої] мови програмування": вона використовується vector
як синонім для одновимірного масиву і matrix
як синонім для двовимірного масиву. Це узгоджується з позначеннями з математики векторів і матриць, хоча в CPL вони просто зручні мнемоніки і не мають жодних властивостей, пов'язаних з математичними структурами.
Чи можемо ми просуватися далі у часі щодо мов обчислень? Одна потенційна гілка нашої стежки холодна. CPL сильно впливав на Algol 60 (оновлення 1963 р.). Тепер ALGOL 68 мав типи, які були описані як "упаковані вектори", такі як bits
і bytes
: але їх не було в більш ранніх випусках Algol, які просто мали ARRAY
посилання на масив. Оскільки BCPL походить з 1966 року, CPL повинен був бути до цього (але після 1963 р.): ALGOL 68 (стандартизований у 1968 та 1973 рр.) Не міг бути прямим впливом.
З іншого боку, Основні характеристики CPL також посилаються на систему LISP Маккарті . Хоча це не використовує вектор для позначення структури даних у самій системі, це S-вирази , M-вирази та L-вирази (L-вирази - це рядки, тому будь-яка асоціація між вектором та рядком зникла), вона робить використання вектора в іншому сенсі , щоб представити «значення числа змінних» , що представляє «стан машини в будь-який час». Таким чином, ми маємо докази для припущення, висловленого в коментарях: використання слова "вектор" для позначення "масив" в обчисленнях походить від застосування аналогічного терміна в математиці.