Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2015, 10:44   #71
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,672
По умолчанию

Цитата:
Прекрасно используются? Ничего, что там преобразования строк идут к PChar, т.е. к сишному виду?
Единственный смысл объединять в одном проекте несколько языков - это когда языки разные и пользуются на разных уровнях. Помнится в универе изучали немного Isagraf, там один язык в виде блок-схем на верхнем уровне, на нём кодировалась основная логика, потом каждый блок можно было закодировать на другом языке. Смысла в один проект совать однотипные делфи и си я не вижу никакого.
И в чем проблема с этим преобразованием? Делфи вроде типы случайно не перепутает и случайно не приведет х.з. к чему.
Ок, есть большуший проект на делфи и вот захотелось туда кошерную возможность добавить, а библиотека эта на с/++. Заново переписывать?
Однотипные языки согласовать как раз проще всего - использование VCL для С++ подтверждает это прекрасно. Это не значит, что в одном модуле должно быть куча переплетений изо всех возможных языков. Но само по себе состыковать разноязыковые модули на структурном уровне м.б. очень полезно.
Благими намерениями устлана дорога на programmersforum.ru
MihalNik вне форума Ответить с цитированием
Старый 14.04.2015, 10:48   #72
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Но само по себе состыковать разноязыковые модули на структурном уровне м.б. очень полезно.
Именно! На уровне юнитов/модулей/файлов.
При этом операции вида
Код:
z=call('Math.cpp.add(x, y)');
не должны быть через строчку с обычным кодом. Это может быть локализовано в одной/двух функциях или там в пределах цикла (когда идет обработка потока каких-то данных). Тут стилетовский вариант даже в плюс - использовать строки постоянно неудобно, это может быть дополнительным барьером к тому чтобы превращать программу в черт знает что.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 14.04.2015 в 10:51.
Utkin вне форума Ответить с цитированием
Старый 14.04.2015, 11:21   #73
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Ну здрасьте приехали. SQL в шоке
Всю жизнь думал, что это язык продвинутых запросов к СУБД. На нем можно писать программу? SQL просто недоязык недопрограммирования в СУБД.

Цитата:
Пусть мы пишем калькулятор длинных чисел на Яве фронтэнд (окошко, кнопочки) с юнитом на С++ (сама математика). У нас 2 файла (условно) - main.class и Math.cpp.
Юзер жмакает на кнопки для ввода числа и операций. Затем нажимает на кнопочку РАВНО. И тут уже каким-то волшебным образом (Стилет предлагал строкой) мы вызываем z=call('add(x, y)');
Где вместо x и y наши числа которые нужно сложить.
Все никакого смешения - все что касается чисел так и лежит в Math.cpp, все что касается кнопочек сделано на Яве. Транслятор сам умненький начинает перебирать юниты в поиске нужной функции, ну или в той же call указывать явное обращение - z=call('Math.cpp.add(x, y)'); это уже детали.
идея вызова через строки - бредовая неимоверно.

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

И снова вернулись к геморою, т.е. к мелочам. Java до мозга костей ОО-й, в C++ можно натолкать просто методов.
Как вы это решите?

не не не, никаких вызовов других ЯП через ядерные функции)
Лучше уж пре-процессор какой:
Код:
//#define LANGUAGE=JAVA

cross-import Math.h;

public static void main(String args[]) { //Java
   //#CODEBLOCK CPP
       add(args[0],args[1]);
   //#ENDCODEBLOCK CPP
}
может как-то так?

Последний раз редактировалось Человек_Борща; 14.04.2015 в 11:23.
Человек_Борща вне форума Ответить с цитированием
Старый 14.04.2015, 11:25   #74
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
SQL просто недоязык недопрограммирования в СУБД
SQL обиделся. Запросы всего лишь вершина айсберга. Вам не мешало бы посмотреть на языковые возможности для триггеров и процедур
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.04.2015, 11:30   #75
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Оппоненция оппонирует
Дискуссия дискушает
Ладно, я то убеждать не буду. Я свое мнение выразил. И даже реализовал. Есть у меня целый проект, что сочетает вот такие кроссязыковые вызовы (через строку). К счастью он устраивает всех пользователей включая меня, поэтому я останусь на своем.
Цитата:
На нем можно писать программу?
UDF. И в запросе вызывать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2015, 11:32   #76
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,672
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Всю жизнь думал, что это язык продвинутых запросов к СУБД. На нем можно писать программу? SQL просто недоязык недопрограммирования в СУБД.
Вполне скриптовый язык. Программирование - понятие очень относительное. Ключевые элементы в нем есть.

Цитата:
идея вызова через строки - бредовая неимоверно.
Для компилируемых языков вроде С++ и Паскаля - возможно.
Но С++ через интерпретатор запихать в PHP-какой-нибудь подойдетГ*** к г*** пристанет=)
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 14.04.2015 в 11:35.
MihalNik вне форума Ответить с цитированием
Старый 14.04.2015, 11:34   #77
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Для компилируемых языков вроде С++ и Паскаля - да.
По-моему народ до сих пор не понял что речь в этой теме идет только о интерпретаторах
Цитата:
запихать в PHP
Кстати ремарка: ПХП встраивается в HTML. Один ЯВУ в другом.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2015, 11:45   #78
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,672
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
По-моему народ до сих пор не понял что речь в этой теме идет только о интерпретаторах
Вообще-то в 2-х руслах и я лично не вижу, чем одно другому мешает

Цитата:
Кстати ремарка: ПХП встраивается в HTML. Один ЯВУ в другом.
И там же SQL. Только С++ для полного счастья и не хватаетЖ)
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 14.04.2015 в 11:55.
MihalNik вне форума Ответить с цитированием
Старый 14.04.2015, 11:45   #79
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
По-моему народ до сих пор не понял что речь в этой теме идет только о интерпретаторах
С точки зрения синтаксиса языка между ними нет разницы. С точки зрения механизма вызова одного языка из другого - тоже.
waleri вне форума Ответить с цитированием
Старый 14.04.2015, 12:05   #80
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от MihalNik Посмотреть сообщение
И в чем проблема с этим преобразованием? Делфи вроде типы случайно не перепутает и случайно не приведет х.з. к чему.
К чему должен приводить С++ делфийскую строку? В С++ подходящего типа нет, значит будет какой-то новый, для совместимости. Это до кучи к string, QString, wxString,... если пользуются какие-то библиотеки.
Цитата:
Сообщение от MihalNik Посмотреть сообщение
Ок, есть большуший проект на делфи и вот захотелось туда кошерную возможность добавить, а библиотека эта на с/++. Заново переписывать?
Оформлять в виде dll, если разработчик библиотеки этого не сделал. Если библиотека на классах, тогда ой, всё сильно усложняется, ибо совместимость ООП в этих языках никакая, а уж бинарной точно нет. Тут уже всякие COM нужно пользовать.
Цитата:
Сообщение от MihalNik Посмотреть сообщение
Однотипные языки согласовать как раз проще всего - использование VCL для С++ подтверждает это прекрасно.
Ага. Легендарный костыль.
Цитата:
Сообщение от MihalNik Посмотреть сообщение
Но само по себе состыковать разноязыковые модули на структурном уровне м.б. очень полезно.
Примеры все что-то только про подключение сторонних библиотек. Совать чужой код в виде сорцов в свой проект - это очень странно. Всю жизнь это делали как подключение библиотеки.
Цитата:
Сообщение от Utkin Посмотреть сообщение
Все никакого смешения - все что касается чисел так и лежит в Math.cpp, все что касается кнопочек сделано на Яве. Транслятор сам умненький начинает перебирать юниты в поиске нужной функции, ну или в той же call указывать явное обращение - z=call('Math.cpp.add(x, y)'); это уже детали.
Как и кем всё это будет контролироваться и отлаживаться?
Контроль типов не нужен как я понимаю? Как быть с шаблонами С++, которые собираются на этапе компиляции и создание на лету для них трудновыполнимо, а часть кода где-то там по пути поломается? Директивы типа inline просто забудем? Что с namespace тоже ничего не понятно. Собираетесь делать на помеси плюсов, делфи, жабы,... неконтролируемые приложения, которые будут сыпать исключениями в рантайме? Из-за невозможности отладки всего этого хозяйства разработка на разных языках всё равно будет вестись отдельно.
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет в разных листах одной книги 10uhfa Microsoft Office Excel 0 23.12.2012 19:24
использование одной переменной в разных объектах SUDALV Visual C++ 0 20.04.2011 20:12
Delphi (Проверить правильность использования массивов в программе написанной на языке C++) Skyriver Помощь студентам 5 24.01.2011 20:10
Объединение данных из разных Файлов на разных листах одной книги Nikodim113 Microsoft Office Excel 20 12.01.2011 07:12
Два разных значения в одной ячейки! nisan Microsoft Office Excel 25 29.10.2010 00:12