Концепция Pixilang 3. Математика

Pixilang по русски
Post Reply
User avatar
NightRadio
Site Admin
Posts: 3150
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Концепция Pixilang 3. Математика

Post by NightRadio » Wed Nov 26, 2008 1:26 pm

По умолчанию все числа - 32битные целые, как в текущей версии pixilang.
По некоему запросу программиста пикси переключается в режим чисел с плавающей точкой (32bit float).

Далее возникают такие вопросы.

1. Как описывать число с плавающей точкой (float)? Варианты:
* число с плавающей точкой должно обязательно иметь в своем описании точку :) типа 0.1, 0.2, 4.223.
* число с плавающей точкой определяется символом F на конце: 0.1F, 2.4F, 3F.

2. Как переключаться в режим float. Варианты:
* если в выражении есть хотя бы одна явная float составляющая. Пример: a = 0.3 * i2f( b )
//здесь i2f() - это сокращение от int2float() - преобразование из целого числа в float.
* вводим отдельные мат.операции для float-ов, например, добавляя к обычным операциям символ ^. Пример: a = 0.3 ^* i2f( b )
* воодим символы начала и конца участка с float-операциями. Пример: FLOAT { a = 0.3 * i2f( b ) }

Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Концепция Pixilang 3. Математика

Post by Zuf » Wed Nov 26, 2008 6:12 pm

Голосую за варианты 1.a и 2.a.

Т.е.
1. Как описывать число с плавающей точкой (float)? Варианты:
* число с плавающей точкой должно обязательно иметь в своем описании точку :) типа 0.1, 0.2, 4.223.

2. Как переключаться в режим float. Варианты:
* если в выражении есть хотя бы одна явная float составляющая. Пример: a = 0.3 * i2f( b )
//здесь i2f() - это сокращение от int2float() - преобразование из целого числа в float.
Я бы даже отказаля от специальной функции i2f() в пользу автоматических неявных преобразований целых в float:

a = 2 // целое
b = 8.0 // float
с = a + b // c - это float, т.к. b является числом с плавающей запятой
d = 0.0 + a // d - float, из-за присутствия 0.0 в выражении

Ну это если парсер потянет...

intre
Posts: 43
Joined: Sat Nov 08, 2008 6:28 pm
Location: Moscow
Contact:

Re: Концепция Pixilang 3. Математика

Post by intre » Thu Nov 27, 2008 12:40 am

Согласен с Zuf-ом, думаю, что это наиболее удобные варианты.

J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Концепция Pixilang 3. Математика

Post by J3d1 » Sat Nov 29, 2008 2:20 pm

Согласен с Zufом и Intre!

User avatar
NightRadio
Site Admin
Posts: 3150
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Концепция Pixilang 3. Математика

Post by NightRadio » Mon Dec 01, 2008 7:53 am

Я тоже согласен :)
Только от i2f отказаться не получится. Предложенный Zuf'ом пример логичен только для языков, где переменные хранят внутри себя тип значения (int,float,double,string и т.д.). Pixilang устроен более просто - переменные в нем, как регистры в ассемблере, просто хранят 32-битное число, а как его интерпретировать - это зависит от пользователя. И это одна из основных фишек Пикси :)
Можно еще заставить парсер следить за тем, где и какое значение записали в переменную, но с этим тоже вылазит вогон ненужных сложностей :)

Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Концепция Pixilang 3. Математика

Post by Zuf » Mon Dec 01, 2008 1:24 pm

А разве недостаточно хранить информацию о типа в таблице символов на этапе компиляции?

User avatar
NightRadio
Site Admin
Posts: 3150
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Концепция Pixilang 3. Математика

Post by NightRadio » Mon Dec 01, 2008 2:07 pm

Не совсем. Пикси-компилятор не может точно сказать, какого типа данная переменная в данном месте кода, т.к. в любой момент какая-нибудь подпрограмма может в эту переменную записать значение противоположного типа.

Post Reply