powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Языки-компиляторы без строгой типизации.
25 сообщений из 29, страница 1 из 2
Языки-компиляторы без строгой типизации.
    #36602443
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникла задача написать что-то наподобие интерпретатора языка программирования.
Как следствие - масса объектов, тип которых определяется в рантайме и которые не имеют между собой ничего общего.
Сейчас это все работает на шаблонах С++ со специализациями, но выглядит довольно некрасиво.
Посмотрел в сторону Smalltalk и Python - вроде бы короче и понятнее получится.
Но оба являются интерпретируемыми языками, не проходят по требованиям заказчика.
Подскажите, пожалуйста, хороший язык со слабой типизацие.
--------------
Festina lente
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36602496
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятно, что значит "на шаблонах". Шаблон - это всего лишь продвинутый вариант макроподстановки, при РАЗРАБОТКЕ ПО, а вам нужно иметь объект, динамически меняющий свой тип в RUNTIME. И эти две задачи (парадигмы) лежат в разных плоскостях. Поэтому вам нужно не искать языки с сильной/слабой типизацией а продумать архитектуру уже имеющихся наработок. Её вполне можно реализовать на С++, (если вы не боитесь трудностей конечно :) )
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36602589
belugin4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
C# статический, но начиная с версии 4.0 можно делать динамические переменные (см ссылка)
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36604159
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozok,

Си -- довольно нестрогая и слабая типизация.
однако исходя из Вашей фразы "тип которых определяется в рантайме" можно предположить, что Вы имели в виду динамическую типизацию. тогда Common Lisp, например.
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36604185
Фотография BION
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, судя по сравнению_языков_программирования и разделу "Типизация", ближе всех VB.net, вроде.
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36604192
Фотография BION
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIONНу, судя по сравнению_языков_программирования и разделу "Типизация", ближе всех VB.net, вроде.

Хотя, поддержу k0rvin по поводу CL. Не зря он там по центру стоит. :)
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36604210
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не думаю, что это автору подойдет. Между С++ и CL есть
качественный рывок который не всем может быть "по зубам".
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36604276
Фотография BION
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНе думаю, что это автору подойдет. Между С++ и CL есть
качественный рывок который не всем может быть "по зубам".

Сдается мне, что с Си на Лисп перейти труда не составит, понять его не сложно. Более того, на Лиспе много раз решались подобные задачи.
Другое дело - что автор знает, чем владеет. Это тоже нужно учесть. Си - роды могут быть тяжелыми, плод может не выжить, тут все зависит от акушера :)
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36604592
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за ответы (отдельное спасибо BION за ссылку). .Net не подходит по ряду причин, главная из которых -
необходимость ташить за собой весь рантайм. А Basic мне просто не нравится :). Lisp я-то знаю, но, если мне не изменяет память,
размеры бинарей получается совсем недетские из-за необходимости встраивать лисп-машину.
А так - да, он прекрасно подходит. Хуже, чем Smalltalk, но все равно хорошо.
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36604677
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozokСпасибо всем за ответы (отдельное спасибо BION за ссылку). .Net не подходит по ряду причин, главная из которых - необходимость ташить за собой весь рантайм.
А чем принципиально отличается рандайм лиспа от .Net ? Единый клик экзешника? Это не такая уж большая плата.
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36605528
Фотография Пилотажный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozokВозникла задача написать что-то наподобие интерпретатора языка программирования.
Как следствие - масса объектов, тип которых определяется в рантайме и которые не имеют между собой ничего общего.
Сейчас это все работает на шаблонах С++ со специализациями, но выглядит довольно некрасиво.
Посмотрел в сторону Smalltalk и Python - вроде бы короче и понятнее получится.
Но оба являются интерпретируемыми языками, не проходят по требованиям заказчика.
Подскажите, пожалуйста, хороший язык со слабой типизацие.
--------------
Festina lente

Отвязно.
Так известно у Python-а много реализаций, среди которых есть и с компиляцией (в т.ч. под JVM).
Существование ещё и интерпретации - скорее плюс.
Smalltalk вроде существует на своей виртуальной машине, в байт-код которой и компилируется.
И хорошо бы спросить у заказчика - компиляция ему нужна с какого бока (а может быть - с какого перепоя, в зависимости от задачи с учетом мощи современных даже недорогих компов).
(По первоположенностям интерпретация - тоже компиляция, но трансляция во ч.-л. выполняемое не всего кода в целом и сразу, а кусками при выполнении кусками же. И не факт, что интерпретация будет всегда заметно более ресурсозатратная, вялая, подвисающая, приторможивающая, ...).


По задаче.
То есть набор объектов как детский конструктор, а надязык нужен - для описания того, что нужно собрать?
Тогда слабость типизации - это вопрос не надязыка. То есть может быть надязык так интерпретировать так, чтобы слабая типизация не была нужна?
P.S. Это так вышло - что интерпретация попала на C++ - язык со слабой типизацией.

Так видится сюжет.
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36606575
belugin4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще не очень понятно, что значит компилируемсый - это для чего, для скорости?
Вот, например, jit подойдет? Такое даже для javascript есть. Можно взять V8 , например какой-нибудь
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608197
Хозяин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozokВозникла задача написать что-то наподобие интерпретатора языка программирования.
Как следствие - масса объектов, тип которых определяется в рантайме и которые не имеют между собой ничего общего.я наверное самый тупой из всех тупых -

не пойму что значит тип определяется в рантайме? объект спрограммируйте , в коллекцию пихните по ссылке и меняйте его тип как хотите. в проперти VALUE можете возвращать любую "строку", которая будет обозначать ваш рантаймовый псевдотип.

при чём тут вообще языки программирования?
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608208
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяинне пойму что значит тип определяется в рантайме?
это значит, что т.н. "тип переменной" будет определятся во время выполнения программы, а не задается на этапе компиляции.

Хозяинпри чём тут вообще языки программирования?
а что здесь при том?
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608213
Хозяин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvinХозяинне пойму что значит тип определяется в рантайме?
это значит, что т.н. "тип переменной" будет определятся во время выполнения программы, а не задается на этапе компиляции.тип переменной Объект? да , это круто .

позднее связывание - недосягаемая высота для большинства языков программирования.
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608214
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное CLIPPER - самый удачный пример компилятора без строгой типизации.
Переменные вообще там не обьявляются, а тип по первому присваиванию устанавливается.
Если X = "2" - то X принимает значение типа "строка", и уже следующая строка
X = 2 вызовет Run Time Error - ошибка типа переменной.
А если переменной вообще не было присваивания и её пытаются использовать в правой части оператора присваивания или как аргумент функции, то опять возникнет Run Time Error (потому что неприсовенная ни разу переменная имеет тип "U"- unknown).
Если я правильно понял вопрос.
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608241
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяинk0rvinХозяинне пойму что значит тип определяется в рантайме?
это значит, что т.н. "тип переменной" будет определятся во время выполнения программы, а не задается на этапе компиляции.тип переменной Объект? да , это круто .
почему сразу объект?

Хозяинпозднее связывание - недосягаемая высота для большинства языков программирования.
при чем тут позднее связывание? речь о динамической типизации
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608244
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VowkНаверное CLIPPER - самый удачный пример компилятора без строгой типизации.
Переменные вообще там не обьявляются, а тип по первому присваиванию устанавливается.
Если X = "2" - то X принимает значение типа "строка", и уже следующая строка
X = 2 вызовет Run Time Error - ошибка типа переменной.
А если переменной вообще не было присваивания и её пытаются использовать в правой части оператора присваивания или как аргумент функции, то опять возникнет Run Time Error (потому что неприсовенная ни разу переменная имеет тип "U"- unknown).
Если я правильно понял вопрос.
ты неправильно понял ответ. это пример не нестрогой типизации, а вывода типов.
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608245
Хозяин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvinХозяинk0rvinХозяинне пойму что значит тип определяется в рантайме?
это значит, что т.н. "тип переменной" будет определятся во время выполнения программы, а не задается на этапе компиляции.тип переменной Объект? да , это круто .
почему сразу объект?мда?

k0rvinХозяинпозднее связывание - недосягаемая высота для большинства языков программирования.при чем тут позднее связывание? речь о динамической типизациио динамической типизации чего? :)
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608255
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяинмда?
угу

Хозяинk0rvinпри чем тут позднее связывание? речь о динамической типизациио динамической типизации чего? :)
топикстартер
Возникла задача написать что-то наподобие интерпретатора языка программирования.
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608259
Хозяин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvinтопикстартер
Возникла задача написать что-то наподобие интерпретатора языка программирования.



топикстартер
Как следствие - масса объектов, тип которых определяется в рантайме и которые не имеют между собой ничего общего.
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608261
Хозяин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так объекты или что?

если всё таки объекты - то возможность не объявлять их тип существует .

даже в школьном барсике даже там такой необъявленный объект имеет нечёткий такой тип Object :)
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608262
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
топикстартер
Как следствие - масса объектов, тип которых определяется в рантайме и которые не имеют между собой ничего общего.[/quot]
ну! очевидно же, что ТС хочет динамической типизации! =)
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608266
Хозяин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvinтопикстартер
Как следствие - масса объектов, тип которых определяется в рантайме и которые не имеют между собой ничего общего.
ну! очевидно же, что ТС хочет динамической типизации! =)не видел никогда C++ но уверен на 100% что позднее связывание там есть.

объявляется объектная переменная - а какой именно объект к переменной привяжешь в коде - дело хозяйское :)
...
Рейтинг: 0 / 0
Языки-компиляторы без строгой типизации.
    #36608294
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хозяинне видел никогда C++ но уверен на 100% что позднее связывание там есть.

объявляется объектная переменная - а какой именно объект к переменной привяжешь в коде - дело хозяйское :)играл, не угадал ни одной буквы. try again!
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Языки-компиляторы без строгой типизации.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]