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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2
Как работает псевдокод Тарьяна (объяснил кто-то знакомый с C или Java)?
Короткая история Известный компьютерный ученый Тарьян написал книгу несколько лет назад. Он содержит абсолютно странный псевдокод. Кто-нибудь, пожалуйста, объясните это? Длинная история Тарьян известен многими достижениями, в том числе тем, что он был соавтором кустарников . Он опубликовал книгу " Структуры данных и сетевые алгоритмы » в 1980-х годах. Весь …

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.