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

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

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

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

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


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

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

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

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

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

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

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

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

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



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

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

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

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

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


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