Форум: "Прочее";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];
ВнизОбновление языка YAR Найти похожие ветки
← →
oxffff © (2010-12-09 16:18) [0]В язык YAR добавлены:
-записи с методамиprogram Helloworld;
TMyrecord=record
a,b:integer;
function Method1(var a:integer):integer;
begin
self.a:=a;
result:=self.b;
end;
end;
MecordVar:TMyrecord;
...
MecordVar.abc(MecordVar.b);
-статические массивыMyrecord=record
a,b:integer;
end;
integerarrarr:Myrecord[6][3][5];
integerarrarr[1][2][3].a:=3;
-вывод типов для параметризованной функцииfunction abc<T,U>(a:^T):U;
begin
...
end;
a:^integer;
abc(a):=1;
=>
T=integer
U=integer;
-Импорт функций из библиотекprogram Helloworld;
function importedfunc(var a:integer):integer;external library=mydll name=importfunc;
GField:integer;
begin
GField:=1;
write importedfunc(GField);
end
← →
oxffff © (2010-12-09 16:23) [1]На данный момент есть пока backend на .NET.
Возможно будет backend для LLVM, если найдется желающий заняться.
← →
tesseract © (2010-12-09 16:50) [2]Yet Another Regular language ?
← →
oxffff © (2010-12-09 17:18) [3]
> tesseract © (09.12.10 16:50) [2]
> Yet Another Regular language ?
От первых букв имени сына - Ярослав.
← →
Kerk © (2010-12-09 17:26) [4]Объясни плиз чем эти записи с методами отличаются от стародавних object"ов в Pascal/Delphi?
← →
Юрий Зотов © (2010-12-09 19:03) [5]Зачем? Зачем? Зачем? That is a question.
(c) Гамлет.
← →
oxffff © (2010-12-09 20:38) [6]
> Kerk © (09.12.10 17:26) [4]
> Объясни плиз чем эти записи с методами отличаются от стародавних
> object"ов в Pascal/Delphi?
Записи в YAR, такие же записи как и в Delphi.
← →
oxffff © (2010-12-09 20:43) [7]
> Юрий Зотов © (09.12.10 19:03) [5]
> Зачем? Зачем? Зачем? That is a question.
> (c) Гамлет.
На сегодняшний день существует более 8500 языков программирования.
Многообразие языков программирования обусловлено разными подходами к решению типичных задач, а также отличием самих классов задач друг от друга по требованию к языку.
← →
Kerk © (2010-12-09 20:49) [8]
> oxffff © (09.12.10 20:38) [6]
>
> > Kerk © (09.12.10 17:26) [4]
> > Объясни плиз чем эти записи с методами отличаются от стародавних
> > object"ов в Pascal/Delphi?
>
> Записи в YAR, такие же записи как и в Delphi.
Я понимаю. Вопрос возник по аналогии. В Delphi была такая штука - object. Считалась она жутко устаревшей. Но недавно они тоже сделали записи с методами. Так чем записи с методами отличаются от object?
← →
Юрий Зотов © (2010-12-09 21:07) [9]
> oxffff © (09.12.10 20:43) [7]
>
> На сегодняшний день существует более 8500 языков программирования.
> Многообразие языков программирования обусловлено разными
> подходами к решению типичных задач, а также отличием самих
> классов задач друг от друга по требованию к языку.
OK.
Для решения задач каких классов язык YAR подходит лучше остальных 8500?
← →
Юрий Зотов © (2010-12-09 21:09) [10]> Kerk © (09.12.10 20:49) [8]
> В Delphi была такая штука - object. Считалась она жутко устаревшей.
Эта штука появилась начиная с Turbo Pascal 5.5, а в Delphi перекочевала, надо полагать, ради совместимости.
← →
TUser © (2010-12-09 21:09) [11]
> На сегодняшний день существует более 8500 языков программирования
Че-то мало, имхо.
← →
Kerk © (2010-12-09 21:11) [12]
> Юрий Зотов © (09.12.10 21:09) [10]
>
> > Kerk © (09.12.10 20:49) [8]
> > В Delphi была такая штука - object. Считалась она жутко
> устаревшей.
>
> Эта штука появилась начиная с Turbo Pascal 5.5, а в Delphi
> перекочевала, надо полагать, ради совместимости.
Это не ответ на мой вопрос :)
← →
Юрий Зотов © (2010-12-09 21:19) [13]> oxffff © (09.12.10 20:43) [7]
Предполагаю, что доказательно ответить на [9] будет непросто. Но если бы в [7] было написано что-то вроде: "А низачем, просто хобби, я от этого занятия удовольствие получаю" - то такой ответ на [5] я счел бы вполне достаточным и обоснованным.
:o)
> Kerk © (09.12.10 21:11) [12]
ЖЖОШ!!!
+1!!!!!!!!!!
:o)
← →
Kerk © (2010-12-09 21:38) [14]Я что-то не понял, это сарказм?
← →
oxffff © (2010-12-09 21:39) [15]
> Юрий Зотов © (09.12.10 21:19) [13]
> > oxffff © (09.12.10 20:43) [7]
>
> Предполагаю, что доказательно ответить на [9] будет непросто.
> Но если бы в [7] было написано что-то вроде: "А низачем,
> просто хобби, я от этого занятия удовольствие получаю"
> - то такой ответ на [5] я счел бы вполне достаточным и обоснованным.
>
> :o)
Порой выразительности любимого языка не хватает, порой баги так достают, порой добавляют сомнительные или урезанные возможности, порой есть желание что-то добавить и изменить, но ты не в силах сделать то, к чему у тебя нет доступа, и нет возможности повлиять на процесс...
Может это крик души? :)
← →
oxffff © (2010-12-09 21:41) [16]
> Kerk © (09.12.10 20:49) [8]
>
> > oxffff © (09.12.10 20:38) [6]
> >
> > > Kerk © (09.12.10 17:26) [4]
> > > Объясни плиз чем эти записи с методами отличаются от
> стародавних
> > > object"ов в Pascal/Delphi?
> >
> > Записи в YAR, такие же записи как и в Delphi.
>
> Я понимаю. Вопрос возник по аналогии. В Delphi была такая
> штука - object. Считалась она жутко устаревшей. Но недавно
> они тоже сделали записи с методами. Так чем записи с методами
> отличаются от object?
Записи не наследуются и как следствие отсутствуют виртуальные методы.
← →
Kerk © (2010-12-09 21:42) [17]Да, точно. Про это я не подумал.
← →
oxffff © (2010-12-09 21:43) [18]
> Юрий Зотов © (09.12.10 21:07) [9]
>
> > oxffff © (09.12.10 20:43) [7]
> >
> > На сегодняшний день существует более 8500 языков программирования.
>
> > Многообразие языков программирования обусловлено разными
>
> > подходами к решению типичных задач, а также отличием самих
>
> > классов задач друг от друга по требованию к языку.
>
>
> OK.
> Для решения задач каких классов язык YAR подходит лучше
> остальных 8500?
Например в YAR уже есть, чего нет в Delphi XE
-есть вывод типов
-разрешение перегрузки метода не только по параметрам, но и по возвращаемому значению.
← →
TUser © (2010-12-09 21:46) [19]
> Я понимаю. Вопрос возник по аналогии. В Delphi была такая
> штука - object. Считалась она жутко устаревшей. Но недавно
> они тоже сделали записи с методами. Так чем записи с методами
> отличаются от object?
Это конвергенция, бывает.
← →
Дмитрий Белькевич (2010-12-09 21:47) [20]case of string сделай ;)
> -разрешение перегрузки метода не только по параметрам, но
> и по возвращаемому значению.
Да, бывает не хватает - приходится со всякими dummy извращаться.
← →
Юрий Зотов © (2010-12-09 21:54) [21]> Kerk © (09.12.10 21:38) [14]
Я думал, это как раз ты шутишь:
http://delphimaster.net/view/2-1291815359/
пост [7]
> oxffff © (09.12.10 21:39) [15]
Убедительно.
← →
oxffff © (2010-12-09 22:19) [22]
> > oxffff © (09.12.10 21:39) [15]
> Убедительно.
Однако я прекрасно понимаю, что любому языку нужно большое количество библиотек и наличие формошлепства. Это открытый вопрос. Тем не менее решения есть всегда.
← →
DiamondShark © (2010-12-10 11:27) [23]
> Однако я прекрасно понимаю, что любому языку нужно большое
> количество библиотек и наличие формошлепства. Это открытый
> вопрос. Тем не менее решения есть всегда.
Сделай интергацию в VS.
Будет формошлёпство и 9000 библиотек.
← →
oxffff © (2010-12-10 11:41) [24]
> DiamondShark © (10.12.10 11:27) [23]
>
> > Однако я прекрасно понимаю, что любому языку нужно большое
>
> > количество библиотек и наличие формошлепства. Это открытый
>
> > вопрос. Тем не менее решения есть всегда.
>
> Сделай интергацию в VS.
> Будет формошлёпство и 9000 библиотек.
Не все так просто. Язык YAR не ориентирован на .NET, хотя eсть backend на .NET.
Например в YAR есть процедурный тип, который не поддерживает + -, в backend .NET процедурный тип реализован как указатель, то есть он не CLS совместимый с .NET, в котором делегат является объектом.
Безусловно можно переделать, но тогда язык в большей степени будет одотнеченный. Хотя если предусмотреть на уровне языка поддержку +-, то тогда можно будет сделать CLS совместимым.
← →
oxffff © (2010-12-10 11:43) [25]Sample
TMyFunc=function(a:integer):integer;
TXfunc=function(var a:double):TMyFunc;
function abc(a:integer):integer;
begin
result:=a;
end;
function abc(var a:double):TMyFunc;
begin
result:=abc;
end;
e:double;
f:integer;
g:TXfunc;
begin
g:=abc;
f:=g(e)(f);
end
=>
.method static public void main() cil managed
{
.entrypoint
ldftn native int abc(float64& a)
stsfld native int g
ldsfld int32 f
ldsflda float64 e
ldsfld native int g
calli native int (float64& a)
calli int32 (int32 a)
stsfld int32 f
ret
}
← →
DiamondShark © (2010-12-10 12:16) [26]
> oxffff © (10.12.10 11:41) [24]
*facepalm*
Какая же каша в голове...
← →
triste (2010-12-10 12:22) [27]А чем же вас C# не устраивает? Чудесный язык с кучей вкусняшек: анонимные типы и методы с возможностью распарсить в expression tree, и вывод типов, и делегаты, и кортежи, и динамические типы когда надо, и Linq, и интеграция с COM. Знающий человек будет весьма компактный и ясный код писать.
А они еще один Паскаль придумывают, только ради того, чтобы лелеять любимый begin/end и какие-то мифические трюки с отказом от явного управления памятью производить. Ну понятно, если потренироваться, но ожидать, что этим кто-то вменяемый пользоваться будет, это верх самонадеянности.
← →
oxffff © (2010-12-10 12:23) [28]
> DiamondShark © (10.12.10 12:16) [26]
>
> > oxffff © (10.12.10 11:41) [24]
>
> *facepalm*
> Какая же каша в голове...
?
← →
tesseract © (2010-12-10 12:38) [29]
> но ожидать, что этим кто-то вменяемый пользоваться будет,
> это верх самонадеянности.
PascalABC таки есть. C# многое захватил у паскаля. Чудесный язык - это Smalltalk кстати. Он до сих пор по функциональности обо всех тапки трет, среда разработки, отладки и исполнения в одном флаконе.
← →
oxffff © (2010-12-10 12:44) [30]
> DiamondShark © (10.12.10 12:16) [26]
>
> > oxffff © (10.12.10 11:41) [24]
>
> *facepalm*
> Какая же каша в голове...
CLS
http://msdn.microsoft.com/ru-ru/library/12a7a7h3.aspx
http://www.codenet.ru/progr/cpp/il.php
http://msdn.microsoft.com/ru-ru/library/bhc3fa7f.aspx
← →
oxffff © (2010-12-10 12:47) [31]
> Ну понятно, если потренироваться, но ожидать, что этим кто-
> то вменяемый пользоваться будет, это верх самонадеянности.
>
Где я сказал, что крутой чувак?
← →
triste (2010-12-10 12:58) [32]tesseract © (10.12.10 12:38) [29]
>C# многое захватил у паскаля.
Я бы сказал, что он кое-что захватил у Паскаля. А то прямо получается, что C# это наследник паскаля какой-то. На самом же деле, C# на данный момент вобрал в себя много разных витавших до этого в воздухе концепций, которые Дельфи, корчась, с разной степенью успеха тоже пытается в себя включить. И только потому, что кому-то не хочется терять свой кусок хлеба на разработке этого счастья. По сути, Дельфи это такой же специализированный инструмент для клепания формочек, как и пролог для логического программирования. И тот, кто рассматривает его как нечто большее просто рискует обмануться в своих ожиданиях.
>Чудесный язык - это Smalltalk кстати. Он до сих пор по функциональности обо всех тапки трет, среда разработки, отладки и исполнения в одном флаконе.
Это можно сказать не только про Smalltalk. А если уж и придумывать новый язык, то целесообразно делать это в какой-то еще неистоптанной области, включая в него еще широко не опробованные концепции с четко определенной целью, как Рик Хики, например делал и приуспел. В противном случае, придется бесконечно повторять функциональность уже существущих средств и быть в затмении их яркого света, что и происходит, например, сейчас с Дельфи.
← →
tesseract © (2010-12-10 13:04) [33]
> И тот, кто рассматривает его как нечто большее просто рискует
> обмануться в своих ожиданиях.
Тогда c# это такой специализированный инструмент для клепания веб формочек и тестирования новых подходов к программированию с целью запутать код навечно. Рискуешь обмануться в своих ожиданиях :-)
> повторять функциональность уже существущих средств и быть
> в затмении их яркого света
Про с++ можно сказать что он сияет геммороем при попытке разобрать код. Но таки популярен. Незатменный такой гемморой.
← →
Kerk © (2010-12-10 13:08) [34]2 tesseract
Нафига ты с ним споришь?
← →
tesseract © (2010-12-10 13:34) [35]
> Нафига ты с ним споришь?
Скучно :-)
← →
jack128_ (2010-12-10 14:33) [36]
> Например в YAR есть процедурный тип, который не поддерживает
> + -,
в смысле не поддерживает proc+= someProc; ??
посмотри как в F# или nemerle функциональные типы реализованы, они вроде вполне себе CLS совместимы.
← →
DiamondShark © (2010-12-10 14:35) [37]
> oxffff © (10.12.10 12:23) [28]
Нельзя так путать понятия "процедурный тип" (как абстракция высокоуровнего языка) и "найтив поинтер" (как один из овер9000 возможных низкоуровневых механизмов).
← →
oxffff © (2010-12-10 14:40) [38]
> jack128_ (10.12.10 14:33) [36]
>
> > Например в YAR есть процедурный тип, который не поддерживает
>
> > + -,
> в смысле не поддерживает proc+= someProc; ??
> посмотри как в F# или nemerle функциональные типы реализованы,
> они вроде вполне себе CLS совместимы.
Да, именно в смысле MultiCastDelegate.
Так это .NET языки, поэтому CLS совместимые.
Я пишу для YAR .NET backend исключительно для проверки результата.
← →
oxffff © (2010-12-10 14:47) [39]
> DiamondShark © (10.12.10 14:35) [37]
>
> > oxffff © (10.12.10 12:23) [28]
>
> Нельзя так путать понятия "процедурный тип" (как абстракция
> высокоуровнего языка) и "найтив поинтер" (как один из овер9000
> возможных низкоуровневых механизмов).
Где я напутал эти понятия?
Я написал, что интеграция в VS будет требовать быть CLS совместимым, а это означает что определяемые сборки должны быть понятны другим .NET языкам, что означает некий общий стержень являющийся общим для всех поддерживающих CLS языков, а это означает что типы должны следовать CLS правилам в том числе и быть безопасными и поддерживать например +- для методов обратного вызова, что для в YAR я делать пока не планирую, как и другие CLS требования.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.004 c