Вопросы с тегом «programming-languages»

Вопросы, связанные с проектированием, реализацией и анализом языков программирования. НЕ для вопросов о том, как программировать, которые не по теме на этом сайте.

175
Как может язык, чей компилятор написан на C, быть быстрее C?

Взглянув на веб-страницу Джулии , вы можете увидеть некоторые тесты нескольких языков по нескольким алгоритмам (время показано ниже). Как может язык с компилятором, изначально написанным на C, превзойти C-код? Рисунок: время тестов относительно C (чем меньше, тем лучше, производительность C =...

130
Почему так много языков программирования?

Я довольно свободно говорю на C / C ++ и могу разбираться с различными языками сценариев (awk / sed / perl). Я начал использовать python гораздо больше, потому что он сочетает в себе некоторые изящные аспекты C ++ с возможностями сценариев awk / sed / perl. Но почему так много разных языков...

118
Полезна ли теория категорий для обучения функциональному программированию?

Я изучаю Haskell, и я очарован языком. Однако у меня нет серьезных знаний по математике или CS. Но я опытный программист. Я хочу изучить теорию категорий, чтобы стать лучше на Хаскеле. Какие темы в теории категорий я должен изучить, чтобы обеспечить хорошую основу для понимания...

82
Почему некоторые языки программирования «быстрее» или «медленнее», чем другие?

Я заметил, что некоторые приложения или алгоритмы, построенные на языке программирования, скажем, C ++ / Rust, работают быстрее или быстрее, чем те, которые основаны, скажем, на Java / Node.js, работающие на той же машине. У меня есть несколько вопросов по этому поводу: Почему это происходит? Что...

72
Какие свойства языка программирования делают компиляцию невозможной?

Вопрос: «Некоторые свойства языка программирования могут требовать, чтобы единственный способ получить код, написанный на нем, выполнялся путем интерпретации. Другими словами, компиляция в собственный машинный код традиционного ЦП невозможна. Что это за свойства?» Составители: принципы и практика...

66
Формальная проверка программы на практике

Как инженер-программист, я пишу много кода для промышленных продуктов. Относительно сложные вещи с классами, потоками, некоторыми проектными усилиями, но также и некоторыми компромиссами для производительности. Я много тестирую, и я устал от тестирования, поэтому я заинтересовался инструментами...

64
Может ли динамический язык, такой как Ruby / Python, достичь производительности, подобной C / C ++?

Интересно, можно ли создавать компиляторы для динамических языков, таких как Ruby, чтобы они были похожи и сопоставимы по производительности с C / C ++? Из того, что я понимаю о компиляторах, возьмем, к примеру, Ruby, компиляция кода Ruby никогда не может быть эффективной, потому что способ,...

64
Как я могу объяснить своим родителям, что я изучаю языки программирования?

В настоящее время я заканчиваю магистратуру в области компьютерных наук. Я заинтересован в языках программирования, особенно в системах типов. Я заинтересовался исследованиями в этой области, и в следующем семестре я начну работу над докторской диссертацией на эту тему. Теперь возникает реальный...

58
Зависимые типы против типов уточнения

Может ли кто-нибудь объяснить разницу между зависимыми типами и типами уточнения? Насколько я понимаю, тип уточнения содержит все значения типа, выполняющего предикат. Есть ли особенность зависимых типов, которая их отличает? Если это поможет, я натолкнулся на уточненные типы через проект Liquid...

55
Существуют ли минимальные критерии для языка Тьюринга?

Существует ли набор конструкций языка программирования на языке программирования, чтобы его можно было считать завершенным по Тьюрингу? Из того, что я могу сказать из Википедии , язык должен поддерживать рекурсию или, по-видимому, должен иметь возможность работать без остановки. Это все, что...

54
Что такое безопасный язык программирования?

Безопасные языки программирования (PL) набирают популярность. Интересно, каково формальное определение безопасного PL. Например, C небезопасен, но Java безопасен. Я подозреваю, что свойство «safe» должно применяться к реализации PL, а не к самой PL. Если это так, давайте обсудим определение...

47
Как переменные хранятся в программном стеке и извлекаются из него?

Заранее извиняюсь за наивность этого вопроса. Мне 50 лет, и я впервые пытаюсь правильно понять компьютеры. Так что здесь идет. Я пытался понять, как типы данных и переменные обрабатываются компилятором (в очень общем смысле, я знаю, что это много). Мне не хватает чего-то в моем понимании...

42
Почему некоторые языки программирования Тьюринга завершены, но не обладают некоторыми возможностями других языков?

Я столкнулся со странной проблемой при написании интерпретатора, который (должен) подключаться к внешним программам / функциям: функции в «C» и «C ++» не могут перехватывать переменные функции , например, я не могу создать функцию, которая вызывает «printf» с точно такими же аргументами, которые он...

40
Как работает псевдокод Тарьяна (объяснил кто-то знакомый с C или Java)?

Короткая история Известный компьютерный ученый Тарьян написал книгу несколько лет назад. Он содержит абсолютно странный псевдокод. Кто-нибудь, пожалуйста, объясните это? Длинная история Тарьян известен многими достижениями, в том числе тем, что он был соавтором кустарников . Он опубликовал книгу "...

38
Сборщики мусора поколений по своей природе дружественны кешу?

Типичный сборщик мусора поколений хранит недавно выделенные данные в отдельной области памяти. В типичных программах многие данные недолговечны, поэтому частый сбор молодого мусора (небольшой цикл GC) и нечастый сбор старого мусора - хороший компромисс между затратами памяти и временем,...

38
От чего зависит «скорость» языка программирования?

Предположим, что программа написана на двух разных языках, пусть это будет язык X и язык Y, если их компиляторы генерируют один и тот же байт-код, почему я должен использовать язык X вместо языка Y? Что определяет, что один язык быстрее, чем другой? Я спрашиваю об этом, потому что часто вы видите,...

35
Языки визуального программирования

Большинство из нас изучали программирование с использованием «текстовых» языков программирования, таких как Basic, C / C ++ и Java. Я считаю, что для людей более естественно и эффективно мыслить визуально. Визуальное программирование позволяет разработчикам писать программы, манипулируя...

35
Критерии выбора языка для первого курса программирования

Как преподаватель CS на университетском уровне, вопрос о том, какой язык программирования преподавать на первом курсе программирования, часто поднимается для обсуждения. Есть тысячи языков на выбор и множество религиозных лихорадок (или лихорадок), поддерживающих один языковой лагерь над другим....

35
Что может сделать Идрис, отказавшись от полноты Тьюринга?

Я знаю, что у Идриса есть зависимые типы, но он не завершен. Что он не может сделать, отказавшись от полноты Тьюринга, и связано ли это с наличием зависимых типов? Я предполагаю, что это довольно специфический вопрос, но я не знаю много о зависимых типах и связанных системах...

33
на «О жестокости по-настоящему преподавания информатики»

Дейкстра в своем эссе « О жестокости реального обучения информатике» предлагает следующее предложение для вводного курса по программированию: С одной стороны, мы учим тому, что похоже на исчисление предикатов, но делаем это совсем не так, как философы. Чтобы обучить начинающего программиста...