Язык программирования Go
"Go представляет компилируемый статически типизированный язык программирования от компании Google. Язык Go предназначен для создания различного рода приложений, но прежде всего это веб-сервисы и клиент-серверные приложения. Хотя также язык обладает возможностями по работе с графикой, низкоуровневыми возможностями и т.д.
Работа над языком Go началась в 2007 в недрах компании Google. Одним из авторов является Кен Томпсон, который, к слову, является и одним из авторов языка Си (наряду с Денис Ритчи). 10 ноября 2009 года язык был анонсирован, а в марте 2012 года вышла версия 1.0. При этом язык продолжает развиваться. Текущей версией является версия 1.19, которая вышла в августе 2022 года.
Язык Go развивается как open source, то есть представляет проект с открытым исходным кодом, и все его коды и компилятор можно найти и использовать бесплатно. Официальный сайт проекта - https://golang.org, где можно найти много полезной информации о языке.
Go является кроссплатформенным, он позволяет создавать программы под различные операционные системы - Windows, Mac OS, Linux, FreeBSD, Android и т.д. Код обладает переносимостью: программы, написанные для одной из этих операционных систем, могут быть легко с перекомпиляцией перенесены на другую ОС." [1]
"поддержка параллелизма в языке Go реализована в форме механизма взаимодействующих последовательных процессов (Communicating Sequential Processes, CSP), основанного на идеях специалиста в области теории вычислительных машин и систем Чарльз Энтони Ричард Хоар (C. A. R. Hoare)" [1]
Взаимодействующие последовательные процессы
Взаимодействующие последовательные процессы (англ. communicating sequential processes, CSP) — формальный язык для описания моделей взаимодействия в параллельных системах[1]. Относится к математическим теориям параллелизма, известных как исчисление процессов (или алгебра процессов), основанных на передаче сообщений по каналам. Оказал влияние на разработку языков Оккам[1][2], Limbo, Go[3].
Теория CSP была впервые описана в статье Энтони Хоара в 1978 году[4]. Первоначальная версия была неудачной, так как не представляла неограниченный индетерминизм . Впоследствии под влиянием идей, заимствованных из модели акторов Карла Хьюитта теория была значительно изменена. В версиях CSP Хоара от 1985 года уже используется неограниченный индетерминизм; с тех пор теория значительно развита[5] и остаётся предметом активных исследований[6].
На практике CSP применялась в качестве инструмента формальной спецификации систем с параллелизмом, таких как, например, транспьютер T9000[7] или безопасной системы электронной коммерции[8].
Что нужно для работы с Go?
Список литературы
1. Семён Новиков. Программирование на Golang · Stepik
2. GeeksForGeeks - GoLang
Как установить и настроить Go на Windows
- Загрузка Go
- C:\Program Files\Go\
Установка Go на Ubuntu 22.04
sudo apt install golang-go
Заметки по курсу на Stepik
Массивы Срезы (слайсы, slices)
Массив - это последовательность элементов одного типа фиксированной длины. Срез — это последовательность элементов одного типа переменной длины.