Публикации по теме 'static-typing'


Выводы из глубокого погружения в TypeScript
Этот пост суммирует некоторые выводы из моего глубокого погружения в TypeScript при написании приложения к моей книге . Хотя я уже довольно давно работаю с TypeScript, большая часть кода, с которым я столкнулся, была довольно тривиальной. Большинство из перечисленных ниже аспектов были для меня новыми и помогли мне лучше понять язык. Кроме того, повторное написание большей части кода моей книги на TypeScript позволило мне выявить потенциальные недостатки. Классовая магия TypeScript..

Создание приложений с помощью TypeScript
Код TypeScript не запускается в браузере — разработчики пишут свой код на TypeScript, а компилятор TypeScript преобразует его в JavaScript, который выполняется браузером. Чтобы это работало, рабочий процесс разработки требует дополнительного шага, на котором код TypeScript компилируется перед тем, как он будет предоставлен браузеру. Такие этапы компиляции не были обычным явлением, когда был представлен TypeScript, но быстрое развитие инструментов разработки интерфейса, таких как Gulp и..

TypeScipt - это еще одна попытка Андерса Хейлсберга статически типизировать динамический мир.
TypeScipt - это еще одна попытка Андерса Хейлсберга статически типизировать динамический мир. Я отказался от его языка C # для Javascript намного раньше всех остальных (которым, казалось, промыли мозги этой идеологической обработкой «статического типа»). Когда я понял, что могу изменять объекты во время выполнения, вместо перекомпиляции классов, это было до свидания, C #. Теперь, когда javascript оказался более популярным, чем его собственное творение языка программирования, стремясь к..

Здесь кроется магия - статически и динамически типизированные языки
Проверка типа Процесс проверки и применения ограничений типов. Проверка типа может происходить либо во время компиляции (статическая проверка) , либо во время выполнения (динамическая проверка) . Если спецификация языка строго требует своих правил типизации (т. Е. Более или менее разрешает только те автоматические преобразования типов, которые не теряют информацию), этот процесс можно назвать S trongly набрал, а если нет, то как Мы аклы набрали. Проверка типов - это..

Вопросы по теме 'static-typing'

Должен ли язык, реализующий монады, быть статически типизированным?
Я изучаю функциональный стиль программирования. В Не бойтесь монад Брайан Бекман блестяще рассказал о Монаде. Он упомянул, что Monad — это композиция функций для решения проблемы сложности. Монада включает в себя функцию unit , которая...
2385 просмотров

Почему C # статически типизирован?
Я веб-программист PHP, пытающийся изучить C #. Я хотел бы знать, почему C # требует, чтобы я указывал тип данных при создании переменной. Class classInstance = new Class(); Зачем нам нужно знать тип данных перед экземпляром класса?
16704 просмотров
schedule 07.07.2022

Как статическая типизация ограничивает макросы?
Я читал статью Пола Грэма «Столетний язык». http://www.paulgraham.com/hundred.html Там он утверждает, что статическая типизация «исключает настоящие макросы». Например, типы кажутся неисчерпаемым источником исследовательских работ,...
1103 просмотров

Статическое тестирование для Scala
В Scala есть несколько хороших библиотек для тестирования ( Specs , ScalaTest , ScalaCheck ). Однако благодаря мощной системе типов Scala важные части API, разрабатываемые в Scala, выражаются статически, обычно в форме нежелательного или...
846 просмотров
schedule 16.08.2022

Boo: Явное указание типа хэша
Я новичок в Boo и пытаюсь понять, как объявить тип хеша. Когда я делаю: myHash = {} myHash[key] = value (later) myHash[key].method() компилятор жалуется, что "метод не является членом объекта". Я понимаю, что он не знает, какого...
400 просмотров
schedule 04.03.2024

Как определить функцию, которая может возвращать указатель на себя?
Я хочу написать такой код: /*something*/ Fn() { ... } int main() { /*something*/ fn = Fn; while(fn) fn = fn(); return 0; } Можно ли сделать это полностью безопасным способом? Предположим, C, C++, D, C#, Java или любой другой язык со...
116 просмотров

Статическая типизация Clojure
Я знаю, что это может показаться богохульством поклонникам Лиспа (и другим любителям динамических языков), но насколько сложно было бы улучшить компилятор Clojure для поддержки статической проверки типов (во время компиляции)? Если оставить в...
6146 просмотров
schedule 06.07.2022

Статическая типизация в Clojure, часть 2
Это продолжение моего предыдущего вопроса о статической типизации Clojure. Я просмотрел исходный код Java для компилятора, и есть несколько мест, где он проверяет значение *warn-on-reflection* , но когда я компилирую следующий код, я получаю...
1095 просмотров
schedule 09.05.2022

Является ли float медленнее, чем double? 64-битная программа работает быстрее, чем 32-битная?
Использование типа float медленнее, чем использование типа double ? Я слышал, что современные процессоры Intel и AMD могут выполнять вычисления с удвоениями быстрее, чем с числами с плавающей запятой. Как насчет стандартных математических...
6273 просмотров
schedule 23.05.2022

Язык, удовлетворяющий этим критериям?
Я немного занимался программированием на Java, а также очень мало программировал на C и PHP. Недавно я начал изучать Python, потому что язык показался мне интересным. Но несколько сообщений на SO, казалось, указали на то, что Python не подходит...
433 просмотров

Императивные языки со статической, структурной типизацией и выводом глобального типа
Я знаю такие языки, как Haskell, со статической типизацией и выводом типа. Но существуют ли нефункциональные языки, которые имеют глобальный вывод типа, эквивалент чего-то вроде C с выводом типа и структурной типизацией.
858 просмотров

Разрешение типов функций во внешних модулях
Предположим, у нас есть воображаемый язык программирования со статической типизацией — назовем его SL . Каждый файл SL соответствует модулю — логической группе SL связанных функций в пространствах имен. Вызовы функций в текущем модуле легко...
94 просмотров

Проверьте, не компилируется ли java-код
Это может звучать немного странно, но я ищу возможность проверить, отклоняются ли некоторые утверждения в коде средством проверки типов (это означает, что код должен НЕ компилировать). Объясните мое намерение: я провожу контролируемый...
871 просмотров
schedule 10.06.2023

Как заставить систему типов Scala ловить эту ошибку MatchError?
Я определил порядок для Seq[Seq[T]] таким образом, что это нормальный лексикографический порядок, за исключением того, что все элементы (подпоследовательности) меняются местами сначала (так что C,B,A идет перед A,B,C , но после A,B,A ):...
1095 просмотров

Скомпилированная реализация и система динамического набора языка программирования
Я просматривал этот пост о различиях между языком со статической и динамической типизацией и в комментарии к следующему определению, взятому из этого справочника : Статическая типизация очень часто неправильно понимается как означающая, что...
141 просмотров
schedule 21.09.2022

Какие специальные правила есть у компилятора scala для типа модуля в системе типов
Unit получает специальную обработку компилятором при генерации байтового кода, поскольку он аналогичен void в jvm. Но концептуально, как тип в системе типов scala, кажется, что он также получает специальную обработку в самом языке (примеры ниже)....
1254 просмотров

ошибка недопустимого типа в самореференциальных типах mypy
Я определил следующие типы: KRPCTypes = typing.Union[int, bytes, list, "KRPCDict"] KRPCDict = typing.Dict[bytes, KRPCTypes] Когда я запускаю mypy , я получаю следующую ошибку: error: Invalid type "test.KRPCDict" Вот полный...
813 просмотров
schedule 02.07.2022

Как использовать проверку статического типа с помощью Dict с разными типами значений в Python 3.6?
Пытаюсь использовать статические типы в коде Python, поэтому mypy может помочь мне с некоторыми скрытыми ошибками. Это довольно просто использовать с одиночными переменными real_hour: int = lower_hour + hour_iterator Сложнее использовать...
5444 просмотров
schedule 16.07.2023

Поток: ошибка при использовании карты
Я только начал реализовывать проверку типов с помощью Facebook Flow в одном из своих проектов и столкнулся с некоторыми проблемами. Я пытаюсь сделать следующее с картой: /* @flow */ let testMap: Map<string, Array<number>> = new...
174 просмотров
schedule 10.01.2023

Как правильно работать с вызовом методов в связанных, но разных классах в C#
Честно говоря, я не был уверен, как сформулировать этот вопрос, поэтому простите меня, если фактический вопрос не соответствует тому, что вы ожидали, исходя из названия. C# — это первый язык со статической типизацией, на котором я когда-либо...
402 просмотров
schedule 04.04.2023