Модераторы: Се ля ви

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Русский язык программирования, был бы совсем другим 
:(
    Опции темы
LSD
Дата 14.7.2005, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15646
Регистрация: 24.3.2004

Репутация: 2
Всего: 532



Цитата(Sardar @ 13.7.2005, 17:24)
На самом деле очень сильно отличаеться! Я повторяю, Java будем считать код в синтаксисе Java. Байткодом будем считать байткод Java. Это две разные вещи.

Не настолько они разные, для кодогенератора не большая разница что именно генерировать строку xor eax,eax или последовательность байт 66 33 C0.

Вообще компилятор это программа которая переводит текст с языка A на язык B, так что результаты интерпритации обоих программ, при одинаковых входных данных, будут одинаковыми. Так что с этой точки зрения компилятор в байткод и компилятор в другой язык не имеют принципиальных различий. Основная сложность состоит не в генерации кода, а в преобразовании дерева синтаксического разбора для одного языка, в дерево для другого.
Добавлено @ 09:59
Цитата(Sardar @ 13.7.2005, 17:24)
операции с файлами нельзя перевести на другой язык если там их не существует

Ну операций с файлами на уровне языка я не видел вообще, это скорее на уровне стандартных библиотек. Но тут разговор особый.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Sardar
Дата 14.7.2005, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 1
Всего: 317



Цитата(LSD @ 14.7.2005, 08:56)
Не настолько они разные, для кодогенератора не большая разница что именно генерировать строку xor eax,eax или последовательность байт 66 33 C0.

Эм... а с каких пор Java стала похожа на ассемблер? JASM оставим в стороне, это ассемблер байткода smile

Для ясности пример Java кода:
Код
public class Test {
  protected String param;
  public Test(String a) {
     System.out.println("Got: "+(this.param=a));
  }
}


Цитата(LSD @ 14.7.2005, 08:56)
Вообще компилятор это программа которая переводит текст с языка A на язык B

Это очень условно, через чур я бы сказал... Байткод он более свободен чем Java код(см. пример выше), хотя и достаточно "высокоуровен", что бы свободно читаться и декомпилироваться. Хотя после обфускатора, не того что имена убивает, а обфускатора кода, редко какой декомпилер сможет восстановить текст Java кода. Попробуй декомпильнуть, хотя бы в уме обычный х86 код, посмотри в любом дизассемблере. Отсюда может быть и ясно, что код можно "перевести" из любого языка в любой другой, но на практике это не на столько оптимистично smile

Цитата(LSD @ 14.7.2005, 08:56)
Так что с этой точки зрения компилятор в байткод и компилятор в другой язык не имеют принципиальных различий.

А различия то как раз очень большие! Разобрать сложный язык на простые команды гораздо проще чем собрать в другой сложный язык. Хотя бы для интереса советую это.

Цитата(LSD @ 14.7.2005, 08:56)
Основная сложность состоит не в генерации кода, а в преобразовании дерева синтаксического разбора для одного языка, в дерево для другого.

Нет, основная сложность это перенести семантику исходного языка в семантику целевого языка. Остановимся на Java, попробуем перевести в "родственный" JavaScript. Большинство библиотек Java написанны на самой Java + JNI там где это необходимо. Представим интерпретатор JavaScript который также будет иметь JNI и юзать те же нативные библиотеки. Задача конвертнуть все библиотеки, весь код и сам проект в придачу в JavaScript, при условии что JavaScript код будет написан не натянутым за уши к Java(ведь в JS нет классов, модиффикаторов доступа и т.п., но это можно с оговоркой реализовать), а в том стиле, в каком принято писать на JS. Вся архитектура библиотек поменяеться, исчезнут множество классов, так как JS не имеет жёстких типов. А вложенные функции, прототипы, динамически изменяемые обьекты, это не каждый человек может в голове переварить пытаясь "перевести" Java код в JS, впрочем у человеку свойственно стопортиться на чём то одном и тормозить smile
Я как человек знающий JS могу сказать что код Python проще перевести на JS, чем Java, так как с последним используеться ну чуть ли не другая парадигма.

Цитата(LSD @ 14.7.2005, 08:56)
Ну операций с файлами на уровне языка я не видел вообще, это скорее на уровне стандартных библиотек. Но тут разговор особый.

Не скажи smile Определим пару базовых операций ввода/вывода на асме, они будут всего пару кб. Затем пишем на чистом C драйвер диска, файловой системы, кеша - в результате на уровне языка имеем операции с файлами. Естественно высокоуровневные языки придумывались для большей портабельности с одной машины на другую. Поэтому в языке нельзя писать на прямую в порты, так как на другой машине их может и не быть вообще, в смысле что архитектура машины может в корне различаться. Отсюда базовый слой непосредственной работы с машиной зачастую писан на асме, но такого когда в хорошей системе не много (это не камень в огород ассмеблерщиков smile )


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
JusTalionis
Дата 15.9.2006, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: нет
Всего: 17



Друзья, мы оклонились от темы в детали. Вопрос-то был (как мне показалось) о существовании и целесообразности такой парадигмы программирования, для которой русский язык оказался бы предпочтительным.

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

Се ля ви: Стиль программирования может быть и возможен, где наиболее подходящим был бы русский как язык, но это, IMHO, дело очень далекого будущего, когда интеллектуальному компилятору вам придется объяснять, как строить программу, а не выписывать алгоритм, как сейчас. Потому что, в отличие от английского, русский существенно неалгоритмичен. 


Это сообщение отредактировал(а) JusTalionis - 15.9.2006, 13:29
PM MAIL   Вверх
integral
Дата 11.11.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 3.7.2006
Где: Dnipropetrovs' ;k, Ukraine

Репутация: нет
Всего: нет



А вообще в СССР создали когдато Рефал, на его диалектах щас в USA пишут smile


--------------------
import my.opinion.*;
жж
PM ICQ   Вверх
Exception
Дата 11.11.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: нет
Всего: 186



Всю тему читать не стал, так что просто позволю себе высказать своё мнение. А как бы вы отнеслись к ЯП на французском, испанском, китайском? Вся сила английского в его простоте. Если язык программирования с бедным синтаксисом на английском выглядит вполне нормально, то такой "корявый", машинный русский совершенно не воспринимается, по крайней мере, лично мной.
Пример:

Код

if (myObject is null)
{
  //...
}


vs

Код

если (мойОбъект это нуль)
{
  //...
}


Всё-таки, английский язык куда более формальный, а потому ближе к тому, что может понять средний компилятор.

Добавлено @ 17:25 
Цитата(Sardar @  14.7.2005,  17:36 Найти цитируемый пост)
Вообще компилятор это программа которая переводит текст с языка A на язык B


Прошу прощения, это транслятор. Компилятор есть транслятор в маш. код.

Добавлено @ 17:26 
тьфу, то есть это цитата LSD smile .
PM   Вверх
LSD
Дата 11.11.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15646
Регистрация: 24.3.2004

Репутация: 2
Всего: 532



Ух ты какая тема всплыла, а я про нее и забыл smile


Цитата(Sardar @  14.7.2005,  16:36 Найти цитируемый пост)
Это очень условно, через чур я бы сказал...  Байткод он более свободен чем Java код(см. пример выше), хотя и достаточно "высокоуровен", что бы свободно читаться и декомпилироваться. Хотя после обфускатора, не того что имена убивает, а обфускатора кода, редко какой декомпилер сможет восстановить текст Java кода. Попробуй декомпильнуть, хотя бы в уме обычный х86 код, посмотри в любом дизассемблере. Отсюда может быть и ясно, что код можно "перевести" из любого языка в любой другой, но на практике это не на столько оптимистично

Да ничего он не свободней. По сути есть два языка, в одном есть некоторые "элементарные" операции, и в другом есть "элементарные" операции, плюс стандартные библиотеки, но тут вроде ясно, что надо делать. Вопрос только в том как перевести элементарную операцию языка А в последовательность элементарных операция языка Б (оптимизацию рассмотрим потом). Я не понимаю, почему операция add AX, BX дает большую свободу, чем A+B?


Цитата(Sardar @  14.7.2005,  16:36 Найти цитируемый пост)
Это очень условно, через чур я бы сказал...  Байткод он более свободен чем Java код(см. пример выше), хотя и достаточно "высокоуровен", что бы свободно читаться и декомпилироваться. Хотя после обфускатора, не того что имена убивает, а обфускатора кода, редко какой декомпилер сможет восстановить текст Java кода. Попробуй декомпильнуть, хотя бы в уме обычный х86 код, посмотри в любом дизассемблере. Отсюда может быть и ясно, что код можно "перевести" из любого языка в любой другой, но на практике это не на столько оптимистично

Именно так оно и есть (я про определение). Я вообще в данном контексте не говорил, про сложность. Есть ряд компиляторов в Java байткод (JPython, MidletPascal и т.п.) и есть достаточно эффективные декомпиляторы, которые могут по class файлам построить Java исходник. Вот тебе готовые компиляторы из одного языка в другой. А насчет обсфукаторов ты не прав, если они не применяют нелегальных приемов, типа кода после return и т.п., то декомпиляции достаточно эффективна. Я общался с ребятами которые делали компилятор из PL/SQL в Java, а эти языки очень различны.


Цитата(Sardar @  14.7.2005,  16:36 Найти цитируемый пост)
Определим пару базовых операций ввода/вывода на асме, они будут всего пару кб. Затем пишем  на чистом C драйвер диска, файловой системы, кеша - в результате на уровне языка имеем операции с файлами. Естественно высокоуровневные языки придумывались для большей портабельности с одной машины на другую. Поэтому в языке нельзя писать на прямую в порты, так как на другой машине их может и не быть вообще, в смысле что архитектура машины может в корне различаться. Отсюда базовый слой непосредственной работы с машиной зачастую писан на асме, но такого когда в хорошей системе не много (это не камень в огород ассмеблерщиков  )

В АСМ нет функций ввода вывода вообще. Там или можно вызвать функции ОС или обратится напрямую к аппаратуре, но это не функции ввода-вывода ассемблера.

Добавлено @ 17:34 
Цитата(Exception @  11.11.2006,  17:23 Найти цитируемый пост)
Прошу прощения, это транслятор. Компилятор есть транслятор в маш. код.

Это достаточно условно. Нет никаких принципиальных ограничение, на создание машины которая бы могла интерпретировать скажем ассемблерный код, и тогда транслятор из C++ в ASM, превратится в компилятор.
Но если хотите пусть будет транслятор.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Andrej_Inc
Дата 9.12.2006, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.12.2006

Репутация: нет
Всего: нет



Русский компилятор, будет нереально сложно реализовать в полной мере, хотя удобство и свобода мысли на Русском - это заманчивая идея. Если такой язык и будет, то действительно только Русский Человек сможет его понять smile 
PM MAIL   Вверх
achepkunov
Дата 13.12.2006, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.12.2006

Репутация: 1
Всего: 1



А мне тоже интересно. Я бы поучавствовал, может быть.

А можно еще какой пример, чтоб по-русски и с особенностями?

Насчет мертворожденности - ну когда же наконец 1с сдохнет, а? smile
PM MAIL   Вверх
smartov
Дата 13.12.2006, 12:48 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Ну точно осеннее обострение. Бросайте вы эту идею про "Великий и могучий русский язык программирования".
PM MAIL   Вверх
Шатиров
Дата 31.5.2009, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 31.5.2009

Репутация: нет
Всего: нет



Цитата(Sardar @ 5.7.2005,  13:52)
Цитата
сть подозрение, что подсознательно нам, в силу особенностей нашего разговорного языка, будет легче писать/разбирать чужой код на языке программирования, в котором за основу взят русский язык, а не английский. 

И будет этот язык только в россии, следовательно вообще не популярен, следовательно никогда не получит развития (читай рождён мёртвым).

Я не согласен с версией выкидыша!..
Всё же Россия не маленькая!
Я думаю, что создания в корне отечественную ОС максимально облегчит задачу создания программ на русском языке!
А если сделать двойной компилятор-интерпретатор!
Первая - переводчик из английского в русский основные понятия, слова!
Вторая тотальная, корневая и структурная локализация на отечественную ОС!
Так можно я думаю с MS и Mac на отечественную ОС и обратно! )))
полная совместимость и независимость в одном флаконе!!! Распространение точно будет в странах СНГ!!! Уверен! ))
И свободный конструктор для отечественной ОСи!!! ))))) Вот чего не хватает!.. ))
Осталось найти того, кто поднимит Российский статус информационного закупщика до конкурента!!!! ))))))))
Согласны со мной?? ))))
PM MAIL   Вверх
Vaulter
  Дата 31.5.2009, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



Россия не маленькая только по территории, на которой некому жить
Население Китая - 1 322 178 190 чел.
Население Индии - 1 131 191 071 чел.
Население США - 303 824 646 чел.
Население Нигерии! - 146 255 312 чел. и растет на 2% в год

Население России - 141 927 900 чел.

о какой популярности идет речь?

русский язык не так прост семантически как английский. 
Кстати, русских ЯП не так уж мало. Начиная с 80х создавались кулибиными...
Да и сейчас. кому не хватает русского в ЯП, идите в 1Сники smile

Это сообщение отредактировал(а) Vaulter - 31.5.2009, 17:14


--------------------
PM MAIL WWW ICQ   Вверх
LSD
Дата 1.6.2009, 12:42 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15646
Регистрация: 24.3.2004

Репутация: 2
Всего: 532



Цитата(Шатиров @  31.5.2009,  00:47 Найти цитируемый пост)
Я думаю, что создания в корне отечественную ОС максимально облегчит задачу создания программ на русском языке!
А если сделать двойной компилятор-интерпретатор!
Первая - переводчик из английского в русский основные понятия, слова!
Вторая тотальная, корневая и структурная локализация на отечественную ОС!
Так можно я думаю с MS и Mac на отечественную ОС и обратно! )))
полная совместимость и независимость в одном флаконе!!! Распространение точно будет в странах СНГ!!! Уверен! ))
И свободный конструктор для отечественной ОСи!!! ))))) Вот чего не хватает!.. ))
Осталось найти того, кто поднимит Российский статус информационного закупщика до конкурента!!!! ))))))))
Согласны со мной?? )))) 

Ну прям выступление О. Бендера в шахматном клубе smile 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Samotnik
Дата 1.6.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Завсегдатай
Сообщений: 7191
Регистрация: 4.11.2006
Где: Минск City

Репутация: нет
Всего: 191



встретился с ЯП на русском языке, только в универе, когда 4 лабы нужно было сдать в 1С.
Было жутко не привычно и не уклюже.  

Код

если (естьОбъект)


smile smile smile smile 
PM MAIL   Вверх
Keeper89
Дата 2.6.2009, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2578
Регистрация: 26.2.2009

Репутация: нет
Всего: 58



Цитата(Samotnik @  1.6.2009,  14:23 Найти цитируемый пост)
Было жутко не привычно и не уклюже.  

+1

Может в теме упоминалось, есть такой русский ЯП - ПРОФТ.



Это сообщение отредактировал(а) Keeper89 - 2.6.2009, 02:20


--------------------
PM MAIL WWW   Вверх
smartov
Дата 2.6.2009, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Цитата(Keeper89 @  2.6.2009,  02:18 Найти цитируемый пост)
есть такой русский ЯП - ПРОФТ.

ПРОФИТ?!?!?  smile  smile 
PM MAIL   Вверх
Google
  Дата 23.5.2019, 03:46 (ссылка)  





  Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила раздела "Философия программирования":
Се ля ви

Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО:

• вопросы перспективного развития методов написания ПО;

• изменяющиеся языки и методологии программирования;


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Философия программирования | Следующая тема »


 




[ Время генерации скрипта: 0.1429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.