Проверка семантики кода

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Проверка семантики кода

Сообщение Хакер » 23.05.2012 (Ср) 10:21

Но в любом случае, абсолютно ноль целых ноль десятых смысла в идее писать компилятор, компилирующий любой язык, в котором нет типов, в Native-код.

Потому что код (суммарно) получится очень большим по объёму (на два порядка больше, чем аналогичный псевдокод).
Код будет состоять из повторяющихся почти одинаковых (очень друг-на-друга похожих) кусков, размером где-то 50—100 инструкций, которые будут производить кучу проверок и производить элементарное (в позиции языка) действие, вроде сложения двух операндов или вызова «функции».

Этот код даже выполняться будет медленнее, чем псевдокод на аналогичной виртуальной машине, потому что в этом случае процессорный кеш не даст никаких преимуществ, а во-втором случае (в случае виртуальной машины) процессорный кеш закешируют постоянно повторно выполняемые куски кода, являющиеся реализацией элементарных действий виртуальной машины.

Но вот если в языке есть типы, тогда его однозначно нужно делать компилируемым в Native-код. Потому что это даст выгоду.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Проверка семантики кода

Сообщение ger_kar » 23.05.2012 (Ср) 13:25

Хакер писал(а):Но в любом случае, абсолютно ноль целых ноль десятых смысла в идее писать компилятор, компилирующий любой язык, в котором нет типов, в Native-код.
Ну можно в этот язык типизацию внедрить, как говориться, кто делает компилятор, тот и заказывает музыку :)
Бороться и искать, найти и перепрятать

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Проверка семантики кода

Сообщение jangle » 23.05.2012 (Ср) 14:42

ger_kar писал(а):Ну можно в этот язык типизацию внедрить, как говориться, кто делает компилятор, тот и заказывает музыку :)


Если делать полноценный компилятор с типами могут быть сложности. Целочисленные просто реализовать, а вот с плавающей точкой могут быть проблемы. Нужно хорошо понимать команды сопроцессора и IEEE 754. Иначе всему компилятору крышка

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Проверка семантики кода

Сообщение ger_kar » 23.05.2012 (Ср) 17:52

jangle писал(а):а вот с плавающей точкой могут быть проблемы. Нужно хорошо понимать команды сопроцессора и IEEE 754. Иначе всему компилятору крышка
А что если типизацию не применять, проблем такого характера не возникнет? По моему здесь типизация на это никак не влияет, как говориться что в лоб, что полбу.
Бороться и искать, найти и перепрятать

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 23.05.2012 (Ср) 19:28

ger_kar писал(а):Ну можно в этот язык типизацию внедрить, как говориться, кто делает компилятор, тот и заказывает музыку :)

Нельзя внедрить.

Код: Выделить всё
<script type="text/javascript">
  var obj = {};
 
  alert(obj + "\n" + obj.x + "\n" + obj.y);
  obj.x = ":D";
  alert(obj + "\n" + obj.x + "\n" + obj.y);
  obj.x = obj;
  obj.y = null;
  alert(obj + "\n" + obj.x + "\n" + obj.y);
</script>

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Проверка семантики кода

Сообщение ger_kar » 23.05.2012 (Ср) 19:33

Если делать компилятор в нативный код, то ничего не мешает, а для веба нативный код нафиг не нужен.
Бороться и искать, найти и перепрятать

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 23.05.2012 (Ср) 19:53

ger_kar писал(а):Если делать компилятор в нативный код, то ничего не мешает

... изобрести новый язык?

ger_kar писал(а):а для веба нативный код нафиг не нужен.

Javascript же :)

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Проверка семантики кода

Сообщение jangle » 24.05.2012 (Чт) 10:47

ger_kar писал(а):Если делать компилятор в нативный код, то ничего не мешает, а для веба нативный код нафиг не нужен.


Есть операционки написанные на JavaScript, для планшетов всякие вебОС. Вот там компилятор мог бы пригодится

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Проверка семантики кода

Сообщение Хакер » 24.05.2012 (Чт) 14:28

Операционки, написанные на JavaScript — невозможны. Тот факт, что такие вещи есть, это просто наглое враньё тех, кто заявляет, что они имеют операционки, написанные на JS. У них какая-то часть, верхнеуровневая часть написана на JS.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Проверка семантики кода

Сообщение jangle » 24.05.2012 (Чт) 14:57

Ну да, ядро переделанный Linux, а интерфейс на JS делается. Если бы JS компилировался, вебОСы не были бы такими тормозными

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 70

    TopList