Похожие элементы

Язык программирования 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 processesCSP) — формальный язык для описания моделей взаимодействия в параллельных системах[1]. Относится к математическим теориям параллелизма, известных как исчисление процессов (или алгебра процессов), основанных на передаче сообщений по каналам. Оказал влияние на разработку языков Оккам[1][2]LimboGo[3].

Теория CSP была впервые описана в статье Энтони Хоара в 1978 году[4]. Первоначальная версия была неудачной, так как не представляла неограниченный индетерминизм[en]. Впоследствии под влиянием идей, заимствованных из модели акторов Карла Хьюитта[en] теория была значительно изменена. В версиях CSP Хоара от 1985 года уже используется неограниченный индетерминизм; с тех пор теория значительно развита[5] и остаётся предметом активных исследований[6].

На практике CSP применялась в качестве инструмента формальной спецификации систем с параллелизмом, таких как, например, транспьютер T9000[7] или безопасной системы электронной коммерции[8].

Что нужно для работы с Go?

Prerequisites 

Список литературы

1. Семён Новиков. Программирование на Golang · Stepik

2. GeeksForGeeks - GoLang

Как установить и настроить Go на Windows

Установка Go на Ubuntu 22.04

sudo apt install golang-go

Заметки по курсу на Stepik

Массивы Срезы (слайсы, slices)

Массив - это последовательность элементов одного типа фиксированной длины. Срез — это последовательность элементов одного типа переменной длины.