Разработка языков программирования началась с создания языка для машины ЭНИАК (ENIAC, Electronic Numerical Integrator and Computer)
Программирование на ЭНИАК осуществлялось соединением нужных разъемов на панели проводами и зачастую занимало недели
ЭНИАК использовалась для расчета вычисления, связанных с ядерным оружием, прогнозирования погоды, инженерных расчетов
Первым широкоиспользуемым языком стал FORTRAN, созданный в 1950-ых Джоном Бэкусом в IBM. Далее в 1956-1958 создается LISP при участии Джона Маккарти
Большинство популярных языков, таких как Go, Rust, Typescript, Kotlin, используемых в индустрии, были разработаны в течение нескольких лет (4-6 лет), что подтверждает, что создание промышленного языка программирования - задача нетривиальная
Целями создания языка программирования могут быть разными. Например,
Поэтому у конкретного языка может быть ограниченная область применения
Так что же нужно для создания языка:
Разработка языка программирования - огромная работа, которая может не прекращаться. Разработка начинается с формулировки требований и приоритетов:
Также нужно выбрать:
Что бы разработчик не выбрал, кому-то это можно не понравится. Нельзя уверенно сказать, какая комбинация решений приведет к наилучшему исходу без прототипирования, а функции языка могут взаимодействовать друг с другом
Пример взаимодействия функций языка из языка Go:
package main
import "fmt"
type IM interface {
Method()
}
type SM struct {i int}
fune (x *SM) Method() {
x.i = 1
}
func check(im IM) {
if im != nil {
im.Method()
}
fmt.Println("checked")
}
func main() {
check(nil) // checked
var S_nil *SM = nil
check(S_nil) // segfault
}
Здесь функция check
правильно обработает значение nil
, однако при передачи указателя на объект SM
интерфейса IM
, равного nil
, выбрасывается ошибка доступа к адресу, так как по адресу nil
нет объекта с методом Method()