|
Модераторы: Се ля ви |
|
LSD |
|
||||
Leprechaun Software Developer Профиль Группа: Модератор Сообщений: 15708 Регистрация: 24.3.2004 Репутация: 3 Всего: 537 |
Не настолько они разные, для кодогенератора не большая разница что именно генерировать строку xor eax,eax или последовательность байт 66 33 C0. Вообще компилятор это программа которая переводит текст с языка A на язык B, так что результаты интерпритации обоих программ, при одинаковых входных данных, будут одинаковыми. Так что с этой точки зрения компилятор в байткод и компилятор в другой язык не имеют принципиальных различий. Основная сложность состоит не в генерации кода, а в преобразовании дерева синтаксического разбора для одного языка, в дерево для другого. Добавлено @ 09:59
Ну операций с файлами на уровне языка я не видел вообще, это скорее на уровне стандартных библиотек. Но тут разговор особый. -------------------- 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. |
||||
|
|||||
Sardar |
|
||||||||||||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 1 Всего: 317 |
Эм... а с каких пор Java стала похожа на ассемблер? JASM оставим в стороне, это ассемблер байткода Для ясности пример Java кода:
Это очень условно, через чур я бы сказал... Байткод он более свободен чем Java код(см. пример выше), хотя и достаточно "высокоуровен", что бы свободно читаться и декомпилироваться. Хотя после обфускатора, не того что имена убивает, а обфускатора кода, редко какой декомпилер сможет восстановить текст Java кода. Попробуй декомпильнуть, хотя бы в уме обычный х86 код, посмотри в любом дизассемблере. Отсюда может быть и ясно, что код можно "перевести" из любого языка в любой другой, но на практике это не на столько оптимистично
А различия то как раз очень большие! Разобрать сложный язык на простые команды гораздо проще чем собрать в другой сложный язык. Хотя бы для интереса советую это.
Нет, основная сложность это перенести семантику исходного языка в семантику целевого языка. Остановимся на Java, попробуем перевести в "родственный" JavaScript. Большинство библиотек Java написанны на самой Java + JNI там где это необходимо. Представим интерпретатор JavaScript который также будет иметь JNI и юзать те же нативные библиотеки. Задача конвертнуть все библиотеки, весь код и сам проект в придачу в JavaScript, при условии что JavaScript код будет написан не натянутым за уши к Java(ведь в JS нет классов, модиффикаторов доступа и т.п., но это можно с оговоркой реализовать), а в том стиле, в каком принято писать на JS. Вся архитектура библиотек поменяеться, исчезнут множество классов, так как JS не имеет жёстких типов. А вложенные функции, прототипы, динамически изменяемые обьекты, это не каждый человек может в голове переварить пытаясь "перевести" Java код в JS, впрочем у человеку свойственно стопортиться на чём то одном и тормозить Я как человек знающий JS могу сказать что код Python проще перевести на JS, чем Java, так как с последним используеться ну чуть ли не другая парадигма.
Не скажи Определим пару базовых операций ввода/вывода на асме, они будут всего пару кб. Затем пишем на чистом C драйвер диска, файловой системы, кеша - в результате на уровне языка имеем операции с файлами. Естественно высокоуровневные языки придумывались для большей портабельности с одной машины на другую. Поэтому в языке нельзя писать на прямую в порты, так как на другой машине их может и не быть вообще, в смысле что архитектура машины может в корне различаться. Отсюда базовый слой непосредственной работы с машиной зачастую писан на асме, но такого когда в хорошей системе не много (это не камень в огород ассмеблерщиков ) -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||||||||
|
|||||||||||||
JusTalionis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: нет Всего: 17 |
Друзья, мы оклонились от темы в детали. Вопрос-то был (как мне показалось) о существовании и целесообразности такой парадигмы программирования, для которой русский язык оказался бы предпочтительным.
vadims, я согласен с тобой. В русском языке есть очень важный элемент - термины, и они отличаются особым свойством - точной однозначностью, в отличие от остальных слов русского языка, которые многозначны в значении и контекстах. А в качестве терминов хороши именно чужие слова, как не отягощенные эмоциональной окраской. Потому-то русские слова в программировании и вызывают тошноту, что в силу многозначности порождают ненужные ассоциации ("пошел" - на ), не относящиеся к программированию. Се ля ви: Стиль программирования может быть и возможен, где наиболее подходящим был бы русский как язык, но это, IMHO, дело очень далекого будущего, когда интеллектуальному компилятору вам придется объяснять, как строить программу, а не выписывать алгоритм, как сейчас. Потому что, в отличие от английского, русский существенно неалгоритмичен. Это сообщение отредактировал(а) JusTalionis - 15.9.2006, 13:29 |
|||
|
||||
integral |
|
|||
Опытный Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
А вообще в СССР создали когдато Рефал, на его диалектах щас в USA пишут
|
|||
|
||||
Exception |
|
||||||
Эксперт Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: нет Всего: 186 |
Всю тему читать не стал, так что просто позволю себе высказать своё мнение. А как бы вы отнеслись к ЯП на французском, испанском, китайском? Вся сила английского в его простоте. Если язык программирования с бедным синтаксисом на английском выглядит вполне нормально, то такой "корявый", машинный русский совершенно не воспринимается, по крайней мере, лично мной.
Пример:
vs
Всё-таки, английский язык куда более формальный, а потому ближе к тому, что может понять средний компилятор. Добавлено @ 17:25
Прошу прощения, это транслятор. Компилятор есть транслятор в маш. код. Добавлено @ 17:26 тьфу, то есть это цитата LSD . |
||||||
|
|||||||
LSD |
|
|||
Leprechaun Software Developer Профиль Группа: Модератор Сообщений: 15708 Регистрация: 24.3.2004 Репутация: 3 Всего: 537 |
Ух ты какая тема всплыла, а я про нее и забыл
Да ничего он не свободней. По сути есть два языка, в одном есть некоторые "элементарные" операции, и в другом есть "элементарные" операции, плюс стандартные библиотеки, но тут вроде ясно, что надо делать. Вопрос только в том как перевести элементарную операцию языка А в последовательность элементарных операция языка Б (оптимизацию рассмотрим потом). Я не понимаю, почему операция add AX, BX дает большую свободу, чем A+B? Именно так оно и есть (я про определение). Я вообще в данном контексте не говорил, про сложность. Есть ряд компиляторов в Java байткод (JPython, MidletPascal и т.п.) и есть достаточно эффективные декомпиляторы, которые могут по class файлам построить Java исходник. Вот тебе готовые компиляторы из одного языка в другой. А насчет обсфукаторов ты не прав, если они не применяют нелегальных приемов, типа кода после return и т.п., то декомпиляции достаточно эффективна. Я общался с ребятами которые делали компилятор из PL/SQL в Java, а эти языки очень различны. В АСМ нет функций ввода вывода вообще. Там или можно вызвать функции ОС или обратится напрямую к аппаратуре, но это не функции ввода-вывода ассемблера. Добавлено @ 17:34
Это достаточно условно. Нет никаких принципиальных ограничение, на создание машины которая бы могла интерпретировать скажем ассемблерный код, и тогда транслятор из 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. |
|||
|
||||
Andrej_Inc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.12.2006 Репутация: нет Всего: нет |
Русский компилятор, будет нереально сложно реализовать в полной мере, хотя удобство и свобода мысли на Русском - это заманчивая идея. Если такой язык и будет, то действительно только Русский Человек сможет его понять
|
|||
|
||||
achepkunov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.12.2006 Репутация: 1 Всего: 1 |
А мне тоже интересно. Я бы поучавствовал, может быть.
А можно еще какой пример, чтоб по-русски и с особенностями? Насчет мертворожденности - ну когда же наконец 1с сдохнет, а? |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Ну точно осеннее обострение. Бросайте вы эту идею про "Великий и могучий русский язык программирования".
|
|||
|
||||
Шатиров |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.5.2009 Репутация: нет Всего: нет |
Я не согласен с версией выкидыша!.. Всё же Россия не маленькая! Я думаю, что создания в корне отечественную ОС максимально облегчит задачу создания программ на русском языке! А если сделать двойной компилятор-интерпретатор! Первая - переводчик из английского в русский основные понятия, слова! Вторая тотальная, корневая и структурная локализация на отечественную ОС! Так можно я думаю с MS и Mac на отечественную ОС и обратно! ))) полная совместимость и независимость в одном флаконе!!! Распространение точно будет в странах СНГ!!! Уверен! )) И свободный конструктор для отечественной ОСи!!! ))))) Вот чего не хватает!.. )) Осталось найти того, кто поднимит Российский статус информационного закупщика до конкурента!!!! )))))))) Согласны со мной?? )))) |
||||
|
|||||
Vaulter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 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Сники Это сообщение отредактировал(а) Vaulter - 31.5.2009, 17:14 |
|||
|
||||
LSD |
|
|||
Leprechaun Software Developer Профиль Группа: Модератор Сообщений: 15708 Регистрация: 24.3.2004 Репутация: 3 Всего: 537 |
Ну прям выступление О. Бендера в шахматном клубе -------------------- 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. |
|||
|
||||
Samotnik |
|
|||
Super star ! Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
встретился с ЯП на русском языке, только в универе, когда 4 лабы нужно было сдать в 1С.
Было жутко не привычно и не уклюже.
|
|||
|
||||
Keeper89 |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: нет Всего: 58 |
+1 Может в теме упоминалось, есть такой русский ЯП - ПРОФТ. Это сообщение отредактировал(а) Keeper89 - 2.6.2009, 02:20 |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
||||
|
||||
Правила раздела "Философия программирования": | |
|
Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО: • вопросы перспективного развития методов написания ПО; • изменяющиеся языки и методологии программирования; Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Философия программирования | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |