Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.27;
Скачать: CL | DM;

Вниз

Обновление языка 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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.015 c
15-1291835265
И. Павел
2010-12-08 22:07
2011.03.27
Везде халтура :)


2-1293626724
adigozelov
2010-12-29 15:45
2011.03.27
Function export v EXE


2-1293575440
Anthony
2010-12-29 01:30
2011.03.27
Как правильно отображать ход долгих процессов?


2-1293339350
adminmax
2010-12-26 07:55
2011.03.27
ошибка при компиляции


6-1236003005
_bass
2009-03-02 17:10
2011.03.27
Интернет активность.