Консультация № 169690
21.06.2009, 13:47
0.00 руб.
0 26 2
Прошу опытных программистов посоветовать мне: какой прог-язык изучать, чтобы готовые файлы написанных мною программ имели расширение .exe и могли запускаться в других WindowsXp-системах без предварительной установки оболочек? Желательно с меньшим размером .exe-файла.
Мой уровень: я хорошо программирую cmd-файлы, в 2000г писал на Бейсике и 8-битном ассемблере (для z80). 3 года назад я попробовал Паскаль, но его .pas не распознался на другой машине под Win2000.

Обсуждение

Неизвестный
21.06.2009, 13:55
общий
это ответ
Здравствуйте, Алексеев Владимир.

Исходя из вахих требований, вам лучше всего писать на С++, приложения под win32 console aplication.
Можно выбрать Visual Studio 2008,очень удобная оболочка,имеющая массу возможностей программирования на C++ ,C# и т.д.
3
Ответ удовлетворительный, но не мотивированный. Чайники навроде меня не понимают "win32 console aplication" и ждут от Вас краткие сравнительные характеристики для взвешивания вариантов.
давно
Модератор
156417
2175
21.06.2009, 16:06
общий
Алексеев Владимир:
.pas не распознался на другой машине

А Вы случайно после запуска программы в Паскале не нашли в папке, где был .pas файл с таким же именем и расширением .exe?
Вот он то как раз и есть сама программа, которая должна без проблем работать в Windows/DOS, а .pas - всего лишь исходный код, который без компиляции (в отличие от .cmd и .bat) не может быть запущен (это свойственно практически для всех языков)
давно
Мастер-Эксперт
680
2811
21.06.2009, 16:23
общий
Химик CH:
После запуска он бы не нашел exe. А вот после компиляции (для Turbo Pascal 7.0)
Compile - нажать Destination (значение Memory сменится на Disk)
Alt+F9
такой файл появился бы.

давно
Мастер-Эксперт
259041
7459
21.06.2009, 16:46
общий
Shapoklak:
Вы в самую точку попали мадам! Извините, не знаю как Вас зовут. Я только и делал, что искал .exe. Потом мне сказали, что у этой купленной книжки был не-укомплектован диск с компилятором.
Пожалуйста подскажите чайнику, если я возобновлю учёбу и потрачу много времени на этот Paskal, смогу ли я найти в нём команды перехвата системных событий (вставка флэшки, подача-выдача активного уровня напряжения в ComPort)? Чтоб не звук бестолковый назначался, а какая-то программа?
Неизвестный
21.06.2009, 19:13
общий
Для таких вещей скорее С или Ассемблер подойдут. И писать чисто под WinAPI. Тогда библиотек никаких не нужно. Паскаль давно уже труп. Даже о существовании Дельфи только в России догадываютсяЕсли Паскаль знаком более-менее, можете попробовать на Дельфи написать. Если не очень - лучше учите С.
А некоторые операции с WinAPI можно и в VB6 делать. Только ему его библиотеки тоже нужны. И не все там просто реализовать.
Неизвестный
21.06.2009, 20:01
общий
это ответ
Здравствуйте, Алексеев Владимир.
Рекомендую C++ или ассемблер.
Программируя на ассемблере можно получить минимальный размер .exe'шника, который другими языками не получишь. Но для многих его трудно учить, потому что в Ассемблере каждую функцию нужно описывать полностью. В ассемблере нет таких операторов как print, while, do, if, for, next и тому подобных.
С помощью RadASM'а можно соединять разные ассемблеры (NASM, FASM). Т.е. один код можно компилировать под разные ОС (Linux, Windows).
И, как говорится, то, что не удается запрограммировать на ассемблере, приходится паять. (с)
4
Спасибо за хороший ответ! Для отличного желательны хоть какие-то ссылки на обучалки, дистрибутивы или краткие описания возможностей языков. Ведь выбор задуман для долговременной серьёзной работы…
Неизвестный
21.06.2009, 20:10
общий
Evgenijm:
На вкус и цвет все фломастеры разные, но на дельфи лучше не программитьВо-первых, куча лишнего веса в экзешнике, во-вторых, часто бывает нестабильность.
Неизвестный
21.06.2009, 21:31
общий
Leo_ня:
Да я за Дельфи и не агитируюМне Паскаля в институте хватило. Лучше С. Под ВинАПИ на Асме почти то же самое, но в учебниках обычно учат начиная с доса. Сейчас эти знания уже малополезны а объем большой. Не зная предварительно асм, тяжело вливаться.
Неизвестный
21.06.2009, 21:34
общий
Evgenijm:
вы бы не были так категоричны. Delphi использует ObjectPascal - это компонентно-объектное расширение Pascal. Кстати, родом он из Apple, чья ОС (MacOS) имеет значительное количество приложений написанных именно на ObjectPascal и при этом славится своей устойчивостью.
Неизвестный
21.06.2009, 21:42
общий
Алексеев Владимир:
Я рекомендую Вам поставить Delphi и учиться программировать в этой среде. Там язык ObjectPascal и предназначен для решения прикладных задач.
Довольно не сложный и имеющий огромную поддержку в интернете в виде форумов, исходников и т.д.
Сегодня большая часть приложений под Windows написана именно в Delphi, в том числе и вирусы.
Так же, можно обратить внимание на C# или C++Builder.
Это все среды быстрой разработки, т.е. "что вижу то получаю" методом перетаскивания кнопок, и других компонентов. и просто написания алгоритмов обработки событий этих компонентов.
Есть множество языков - Python и т.д.
Есть классика - С/С++ он несколько сложней, но если есть желание, то стоит остановиться на нем - это даст потом простой переход хоть куда - java, C#, perl, php и т.д. Это системный язык общего назначения, т.е. на нем можно сделать все что можно вообще сделать (кстати, на Pascal так же можно это сделать)
Неизвестный
21.06.2009, 22:09
общий
Victor Pyrlik

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

Живу в Германии 10 лет, так что о здешних реалиях:
О модных нынче универсальных языках: самый популярный - Ява. Стремительно растут C# под Windows и Pyton под Linux. Питон там практически все заполонил. C++ - единственный популярный язык, который падает в количестве, а не в процентах. Если и нужно, то обычно обновления кода на С. VBA жив, пока его в офисах применяют. Дельфи уже в 2000 году я нигде не встречал. Паскаль только в учебниках по алгоритмам и компиляторам. За что его все и ненавидят ;)
Во встроенных системах: C и Java.
Для железа: VHDL и постепенно американские языки приползают. Эта отрасль тут очень сильно выросла за последние годы.
Веб - тот же PHP вроде. Но спрашивают не язык, а конкретный фреймворк.

Но в каждой стране немного по-своему. Например, российский парадокс - Дельфи и Опера. От мировых тенденций в корне отличаются. Во многих странах есть "свои" языки и программы.
Здесь Линукс на работе, Windows дома. Маков было очень мало, но теперь все больше. С них музыку на айпод проще копировать.
И еще: 1С тут нет. СОВСЕМ!! :)
Неизвестный
22.06.2009, 13:07
общий
Покажите мне того человека, который на дельфи вирусы пишет :)
Не надо выбирать дельфи только по тому, что это частично объектно-ориентированный язык программирования. (аля нарисовал кнопку здесь, тыкнул менюшку там).
Неизвестный
22.06.2009, 14:44
общий
Leo_ня:
Покажите мне того человека, который на дельфи вирусы пишет :)

Спросите у господина Касперского. Несколько эпидемий были вызваны программами, написанных в Delphi.
Кстати, размер исполняемого файла написанного в Delphi может быть несколько десятков килобайт и меньше если писать еще и на асме. И тыкать кнопки не обязательно, есть API и т.д.
Язык не имеет отношения к
часто бывает нестабильность
эту нестабильность порождают кривые руки, потому что машинный код он одинаков, если есть сомнения - загляните в исходники Delphi - большая часть кода там написана на asm.. А вот C++Builder, вызывает большую часть функций из библиотек написанных в Delphi.
Неизвестный
22.06.2009, 14:51
общий
Алексеев Владимир:
Для начала изучения программирования Delphi - самый раз. Сегодня близко к 100 % все количество программного обеспечения, используемого в промышленной автоматизации, которое написано в Delphi. (Россия, и не только)
Так что, не плохой выбор для начала, хотя, как я уже сказал, можно пробовать С/С++ (только не visual C++ на базе MFC), C# пожалуй не стоит начинать, штука хорошая и модная, но сути во многом Вы не узнаете, потом возможно и стоит.
Как альтернатива - Java - это один из лучших (на мой взгляд) языков, да и практичный, в любой ОС и на любом устройстве можно запустить не переделывая. да и и для WEB разработки весьма пользительно
Неизвестный
22.06.2009, 20:51
общий
Если руки прямые, то скорее всего на любом языке получится нормально программировать :))
Но зачем писать в дельфи на асме, если уж проще сразу на асме?

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

Именно кривые руки часто растут именно на дельфях, ибо часто попадаются ленивые программеры, которые как раз из-за своей лени и пишут на дельфи.
Ладно, не нужно продолжать холивор.
давно
Мастер-Эксперт
259041
7459
23.06.2009, 05:12
общий
Всем спасибо за соучастие и полезные мотивы! Обязательно сохраню Ваши ответы для выбора последующих действий.
Victor Pyrlik убедил: "Для начала изучения программирования Delphi - самый раз". Когда я в машинных кодах писал Ассемблер для своего Z80, то при малейшей ошибке был полный сбой, и приходилось снова долго загружать ПО с бытового магнитофона (дисководов почти не было в Биробиджане в 2000г.)
В 2005г в Хабаровской академии мне приходилось часто менять жёсткий диск программисту, внедрявшему свои программы на Ассемблере. Мой шеф и спецы отдела комп-технологий заподозрили, что Ассемблер-ошибки портят ПО винчестера в его служебной области. Это серия совпадений или у кого-то на опыте имеется подобная статистика?
Неизвестный
23.06.2009, 08:25
общий
В 2005г в Хабаровской академии мне приходилось часто менять жёсткий диск программисту, внедрявшему свои программы на Ассемблере. Мой шеф и спецы отдела комп-технологий заподозрили, что Ассемблер-ошибки портят ПО винчестера в его служебной области. Это серия совпадений или у кого-то на опыте имеется подобная статистика?

Тестировать работу программы можно в отладчике, виртуальной машине...
Порча ПО винчестера? Всмысле файлов, записанных на ЖД? Но ЖД то при этом не портится... Если конечно во время записи нет неожиданных прерываний записи или чего-нибудь подобного...
давно
Мастер-Эксперт
259041
7459
23.06.2009, 13:21
общий
Leo_ня:
Служебная область ПО на жёстком диске (не путать с большой областью для пользовательских данных (файлов)) - это небольшая по объёму память (типа BIOS) от изготовителя, в которой прописан заводской номер экземпляра, протокол обмена с системным блоком (охранным или другим устройством…), который отправляет данные на хранение и запрашивает при чтении. Если эту область повредить, Hdd превращается в без-мозглую железку, не понимающую чего от него хотят.
давно
Старший Модератор
31795
6196
23.06.2009, 14:13
общий
Алексеев Владимир & Leo_ня:
Цитата: 300247
Покажите мне того человека, который на дельфи вирусы пишет :)


Сам вирус написан на Delphi, библиотека шифрования на асме.

Цитата: Алексеев Владимир Николаевич
мне приходилось часто менять жёсткий диск программисту, внедрявшему свои программы на Ассемблере.

Цитата: 300247
Порча ПО винчестера? Всмысле файлов, записанных на ЖД? Но ЖД то при этом не портится...

Думаю, этот программер пытался работать с HDD через контролер дисковода и "случайно" перепрограммировал его.
Еще вариант, он использовал постоянные старт-стоп команды контролера дисковода.

Если Вы знаете ассемблер для z80 или другое его название i8080,то можете спокойно перейти i8086, т.к. принципы заложенные в первом использовались и во втором.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
23.06.2009, 23:24
общий
Leo_ня:
Служебная область ПО на жёстком диске (не путать с большой областью для пользовательских данных (файлов)) - это небольшая по объёму память (типа BIOS) от изготовителя, в которой прописан заводской номер экземпляра, протокол обмена с системным блоком (охранным или другим устройством…), который отправляет данные на хранение и запрашивает при чтении. Если эту область повредить, Hdd превращается в без-мозглую железку, не понимающую чего от него хотят.

Спасибо, буду знать.

За оценку тоже спасибо :)
Насчёт:
Для отличного желательны хоть какие-то ссылки на обучалки, дистрибутивы или краткие описания возможностей языков. Ведь выбор задуман для долговременной серьёзной работы…

Сам о C++ знаком только понаслышке, рекомендовали авторитетные людиТак что преимуществ\минусов языка я не знаю.
А ассемблер, думаю, штука известная. Он очень близок к машинным кодам (но конечно писать проще), его проще отлаживать, т.к. в отладчике сразу видно код, а не кашу.
Сейчас я его учу, ничем меня не огорчает, думаю, что выбор сделан правильно.
давно
Мастер-Эксперт
259041
7459
24.06.2009, 03:30
общий
Зенченко Константин Николаевич:
Я думаю, Ваша версия, Константин Николаевич, самая вероятная. Чтобы мне так же "случайно" не запортить свой комп какие лучше меры предосторожности? Выше советовали отлаживать в "виртуальной машине". Но спасёт ли вирту-система от некорректного обращения к дисководу? Я сомневаюсь. Наверно лучше на время испытаний заменить дисковод стареньким б/у?
давно
Старший Модератор
31795
6196
24.06.2009, 21:41
общий
Leo_ня:
Цитата: 300247
А ассемблер, думаю, штука известная. Он очень близок к машинным кодам (но конечно писать проще), его проще отлаживать, т.к. в отладчике сразу видно код, а не кашу.

Посмотрите в магазинах книгу "Техника и отладка программ без исходных кодов", которую написал Крис Касперски ISBN:5-94157-229-8

Каша пропадет и появится нормальный код
Пока Вы пишите только обучающие программы сравните размер исполняемого файла и исходного вместе с коментариями.
Теперь посмотрите на размер, к примеру стандартного блокнота:
Количество байт переведим всё в количество строк, без комментариев(приблизительно одна строка на три байта - это только усредненное значение)
81920 C:\WINDOWS\system32\notepad.exe приблизительно равно 21307 строк и это не считая используемых библиотек.
Вы готовы написать столько строк кода, а ещё и комметарии к нему?
Если брать компиляторы ЯВУ, то там соотношение другое от 1:10 до 1:50, а если визуальная среда разработки, то ещё больше.
Использование ЯВУ позволяет сократить время разработки программ.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
24.06.2009, 22:57
общий
Алексеев Владимир:
Цитата: Алексеев Владимир Николаевич
Я думаю, Ваша версия, Константин Николаевич, самая вероятная.

Я тоже так угробил привод 5"25, когда его подключал к РК-86. Очень магнитофоны тормозили. Давно это было.
Через пол года, друг купил "Спектрум" с диководом. Тогда я переписав весь дамп памяти его машины и "перелопатив" кучу доступной литературы, разобрался с работой контролера дисковода, запустил второй дисковод. На первом как оказалось была стерта микро-программа, я старался как мог.

В этом промежутке времени, умудрился программатор РФ-микросхем превратить в банк данных, типа флешки сегодня. Подключаеш десяток РФ-ок и весь набор нужных программ уже какбы доступен. Главное нужные команды давать.
Блин, ностальгия.

Цитата: Алексеев Владимир Николаевич
Чтобы мне так же "случайно" не запортить свой комп какие лучше меры предосторожности? Выше советовали отлаживать в "виртуальной машине"

1) Используйте стандартные средства предоставляемые системой.
2) На диске не эксперементируйте, в крайнем случае FDD, на много дешевле(при перестройке на НDD уже готовой программы, нужно будет учесть только особенности работы и нужным образом изменить программу).
3) Виртуальные машины не совершенны, есть зверьё, которое вырывается из под ВМ при анализе и заражает реальную машину.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Мастер-Эксперт
259041
7459
25.06.2009, 05:27
общий
Спасибо Константин Николаевич за полезные советы! Насчёт практического применениия
Использование ЯВУ позволяет сократить время разработки программ

- это важно! Но где можно купить или скачать материалы по изучению этой Java? До Хабаровска 5 часов езды, там в лучших книжных магазинах нет учебников по скриптам, услуга Книга-почтой отмерла. В МирКниги в основном модные романы. Кто подскажет?
Неизвестный
25.06.2009, 12:08
общий
Вы готовы написать столько строк кода, а ещё и комметарии к нему?

Ну ведь можно в других языках использовать ассемблерные вставки?

Да я, если честно, ассемблер учу не чтобы программировать на нём...
давно
Старший Модератор
31795
6196
25.06.2009, 22:15
общий
Алексеев Владимир:
ЯВУ- язык высокого уровня(С/С++, Basic, Delphi/Pascal и т.д.).
Java - считается кроссплатформенным языком, а это две большие разницы.
так в Одессе говорят
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа