Программное приложение
Компью́терная програ́мма — последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины. Чаще всего образ программы хранится в виде исполняемого модуля (отдельного файла или группы файлов). Из этого образа, находящегося как правило на диске, исполняемая программа в оперативной памяти может быть построена программным загрузчиком. В зависимости от контекста, рассматриваемый термин может относиться также и к исходным текстам программы.
В системном программировании существует более формальное определение программы как размещённых в оперативной памяти компьютера данных и машинных кодов, исполняемых процессором для достижения некоторой цели. Здесь подчёркиваются две особенности: нахождение программы в памяти и её исполнение процессором.
Процесс создания компьютерных программ носит название «программирование», а людей, занимающихся этим видом деятельности, называют программистами. При разработке программ в них часто проникают ошибки. Программа содержит ошибки, если для некоторых данных она даёт сбои, отказы или неправильные результаты.
Процесс поиска и исправления ошибок в программах называется отладкой. Количество ошибок в программах обычно заранее неизвестно. Поэтому заранее неизвестна продолжительность отладки программ. Программа (алгоритм) не содержит ошибок, если она даёт правильные результаты для всех допустимых данных.
Запись исходных текстов программ при помощи языков программирования облегчает понимание и редактирование человеком. Этому, в частности, помогают комментарии, допустимые в синтаксисе большинства языков. Для выполнения на компьютере готовый текст программы преобразуется (компилируется) в машинный код.
Программы с общедоступными исходными текстами называются открытыми. Компьютерные программы являются объектами авторского права. Авторы и правообладатели программ имеют право ограничивать доступ к исходным текстам программ, которые являются их интеллектуальной собственностью.
Некоторые языки программирования позволяют обходиться без предварительной компиляции программы и переводят её в инструкции машинного кода непосредственно во время исполнения. Этот процесс называется динамической компиляцией и он позволяет добиться большей переносимости программ между разными аппаратными и программными платформами при сохранении многих плюсов компиляции.
Интерпретируемые программы, для которых как правило не применяется процесс компиляции и которые интерпретируются операционный системой или специальными программами-интерпретаторами, называются скриптами или «сценариями».
Исходные тексты компьютерных программ в большинстве языков программирования состоят из списка инструкций, точно описывающих заложенный алгоритм. Подобный подход в программировании называется императивным. Однако применяются и другие методологии программирования. Например, описание исходных и требуемых характеристик обрабатываемых данных и предоставление выбора подходящего алгоритма решения специализированной программе-интерпретатору — такой подход называется декларативным программированием. Также, применяются функциональное и логическое программирование.
Большинство пользователей компьютеров используют программы, предназначенные для выполнения конкретных прикладных задач, таких как подготовка и оформление документов, математические вычисления, обработка изображений и т. п. Соответствующие программные средства называют прикладными программами или прикладным программным обеспечением. Управление компонентами вычислительной системы и формирование среды для функционирования прикладных программ берёт на себя системное программное обеспечение, наиболее важной составляющей которого является операционная система.
См. также
Wikimedia Foundation . 2010 .
Что такое приложение в программировании
Приложением в ИТ-сфере называют программу (набор кодированных конструкций и инструкций), исполняющую функции по взаимодействию пользователя с компьютером, планшетом, смартфоном и т. п.
Разнообразие приложений и их количество настолько огромно, что порой бывает трудно определиться с выбором оптимальной программы для решения поставленной задачи.
С развитием, в геометрической прогрессии, информационных технологий, большого количества ИТ-систем возникло достаточно средств и инструментов для написания приложений под них.
В системе пользователь-компьютер, программа занимает центральное место: «слой» между ними. Является производной от исключительно абстрактного человеческого образа мышления.

Чтобы определиться с таким выбором, необходимо знать простейшую классификацию приложений:
— за платформой (одно-, несколько-, кроссплатформенные программы);
— за лицензией (платные, бесплатные, частично платные и т. п.);
— за способом распространения (открытые, свободные, закрытые);
— за сферой применения (прикладные, программные, моделирование, конструирование, проектирование, доступ к контенту);
— за видом (однокомпонентные, комплексные).
Но с развитием «широким шагом» интернета, приложения вышли на качественно новый уровень. А этому предшествовала трудоёмкая работа программистов и инженеров, которые определяли и устанавливали дальнейшие направления. Таким образом, стали появляться веб-приложения, которые непосредственно представляют отдельное направление в программировании.
Веб-приложения – приложения, созданные для осуществления связи пользователя с всемирным контентом, с помощью клиент-серверных технологий. Приоритетными технологиями для создания веб-приложений есть .NET, Java, С/С++, Python и т. д.
Особенностью веб-приложений есть то, что они запускаются на любой платформе где есть поддержка браузерных оболочек (браузеров). Эти приложения запускаются с браузера и не зависят от типа операционной системы. Они имеют стандартную архитектуру: клиентская часть, интерфейс, серверная часть, логика действий и часто используют базы данных.

Весь обмен информацией (запросы и ответы) между пользователем и сервером проходит с использованием, так называемых, наборов соглашений – протоколом. Для веб-программ обычно используют протокол HTTP, FTP, РОР, SMTP и т. д.
Веб-приложение отображается в браузере, в виде разных типов объектов (тест, медиаконтент, формы, кнопки, таблицы данных) используя разметку на странице. Обработка запросов осуществляется на основе современных технологий: Java, Flash, JavaScript, ActiveX, Ajax, Silverlight.
Отдельно стоит отметить развитие процедурных приложений и программирования.
Процедурное программирование появилось на «заре» создания автомата Тьюринга, основная идея которого – это разбиение сложных программ на логические цельные подпрограммы (блоки). Что упрощало процесс программирования.
Следуя логике, процедурные приложения – «аппсы» написанные на процедурных языках и используют процедурную парадигму кодинга. В этой области стоит выделить такие процедурные языки, как Алгол, Фортран, КОБОЛ, Ada, Pascal, C и т .п.
Программы или приложения: как правильно?

Тихо и незаметно 1990-е годы давно прошли, а вместе с ними вышли из употребления и многие слова, которые тогда казались вполне естественными, а сейчас превратились в архаизмы. Софтодром решил вспомнить те вышедшие из употребления слова, которые имеют отношение к информационным технологиям.
Среди таких слов, например, дискета — портативный носитель информации, который был популярен в 1970-х — 1990-х годах. Вместо термина «дискета» также использовалась аббревиатура ГМД — «гибкий магнитный диск». Соответственно, дисковод для работы с дискетами обозначался аббревиатурой НГМД — «накопитель на гибких магнитных дисках». В начале 2000-х годов дискеты практически вышли из употребления, уступив место более емким носителям информации, таким как CD и DVD, а также более удобным в использовании USB-флеш-накопителям, в просторечии известным как «флешка».
Поскольку емкость дискеты 3,5″ высокой плотности составляла всего 1,44 МБ, а сверхвысокой плотности — 2,88 МБ, то, например, никакие фильмы записать на дискету было невозможно, и такое никому даже не приходило в голову. Поэтому на дискеты записывали программы. Если программа была достаточно большой, то она не умещалась на одной дискете, и поэтому для установки программы на компьютер приходилось использовать от нескольких до нескольких десятков дискет.
Сейчас уже есть все основания предполагать, что через некоторое время слово «программа» среди неспециалистов станет таким же архаизмом, как «дискета» и другие слова, вышедшие из массового употребления (например, «аська», на смену которой пришли другие способы общения). В последние годы наблюдается очевидная тенденция к отказу от использования термина «программа» применительно к прикладному программному обеспечению. Вместо слова «программа» в настоящее время чаще используется термин «приложение».
В чем заключаются различия между «программой» и «приложением»? Различия есть, и они сводятся не только к терминологии.
Приложение (англ. application или сокращенно app) — это прикладная программа, предназначенная для выполнения определенных задач и рассчитанная на непосредственное взаимодействие с пользователем. В большинстве операционных систем прикладные программы не могут обращаться к ресурсам компьютера напрямую, а взаимодействуют с аппаратным и программным обеспечением посредством операционной системы.
В свою очередь, компьютерная программа — это термин, имеющий более широкое определение.
Таким образом, категория «приложение» — это часть категории «программы». Можно сказать, что любое приложение является программой, но при этом не каждая программа является приложением.
На бытовом уровне пользователи используют именно приложения, а не программы в широком смысле. И именно поэтому в онлайн-магазинах Google Play, App Store и Microsoft Store представлены не программы, а приложения, соответственно для операционных систем Android, iOS / macOS и Windows / Windows Phone.
И если в 1990-х годах люди «выходили в Интернет» (обычно с помощью диалапа), чтобы «скачать программу для компьютера», то теперь люди превратились из людей в «пользователей» и они ищут не программы, а приложения. Причём всё чаще они не «скачивают» приложения, а «загружают». В 1990-х годах термин «загрузить» имел совсем другой смысл и означал загрузку в Интернет, а не из него. И если вы не застали те времена и не знаете, что такое «диалап», то лучше вам и не знать, а учитывая падение продаж традиционных настольных ПК, слово «компьютер» скорее всего уже в ближайшее время станет таким же архаизмом как и термин ЭВМ (электронно-вычислительная машина).
| Автор: | Softodrom.ru |
| Дата: | 26.11.2017 04:13 |
Программирование мобильного приложения Текст научной статьи по специальности «Компьютерные и информационные науки»
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Хю Нгуен Ба, Дык Буй Минь, Чыонг Нгуен Динь, Хю Нгуен Нгок, Линь Лай Тхи
В настоящее время мы заметим быстрый темп развития рынка мобильных устройств и мобильных приложений. Много разработчиков хотят участвовать в этой отрасли, но сначала всем надо думать о том, как начать разработку мобильных приложений . Какие платформы мобильных устройств существуют, какие технологии надо выбрать, какие языки программирования надо изучить. Чтобы получить верные ответы на эти вопросы, разработчикам надо узнать все достоинства и недостатки всех технологий разработки мобильных приложений , в этой статье мы узнаем об этом.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Хю Нгуен Ба, Дык Буй Минь, Чыонг Нгуен Динь, Хю Нгуен Нгок, Линь Лай Тхи
Модель tcp/ip
Технологии безопасности мобильных устройств
О содержании учебного курса «Гибридные приложения для мобильных устройств»
Сравнительный анализ программного обеспечения для разработки мобильных приложений
Анализ платформ для разработки гибридного мобильного приложения для систем iOS и Android
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Текст научной работы на тему «Программирование мобильного приложения»
PROGRAMMING MOBILE APPLICATIONS Huy N.1, Duc B.2, Truong N.3, Huy N.4, Linh L.5, Lam N.6 (Russian Federation) ПРОГРАММИРОВАНИЕ МОБИЛЬНОГО ПРИЛОЖЕНИЯ Хю Н. Б.1, Дык Б. М.2, Чыонг Н. Д.3, Хю Н. Н.4, Линь Л. Т.5, Лам Н. Ч.6
‘Хю Нгуен Ба / Huy Nguyen — студент, кафедра систем управления и информатики, факультет систем управления и робототехники; 2Дык Буй Минь /Duc Bui — магистрант, кафедра программных систем, факультет инфокоммуникационных технологий;
3 Чыонг Нгуен Динь / Truong Nguyen — студент, кафедра систем управления и информатики, факультет систем управления и робототехники; 4Хю Нгуен Нгок / Huy Nguyen— студент;
5Линь Лай Тхи /Linh Lai — студент; 6Лам Нгуен Чонг / Lam Nguyen — студент, кафедра проектирования и безопасности компьютерных систем, факультет информационной безопасности и компьютерных технологий, Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, г. Санкт-Петербург
Abstract: nowadays, we observe the fast paced development of the market of mobile devices and mobile applications. Many developers want to participate in this industry, but from the beginning of all need to think about what you start with the development of mobile applications. What platforms are mobile devices exist, what technologies need to choose what programming languages to learn. To get the right answers these questions, the developers have to learn all the wealth and the shortcomings of all mobile application development technologies, in this article we will know about it.
Аннотация: в настоящее время мы заметим быстрый темп развития рынка мобильных устройств и мобильных приложений. Много разработчиков хотят участвовать в этой отрасли, но сначала всем надо думать о том, как начать разработку мобильных приложений. Какие платформы мобильных устройств существуют, какие технологии надо выбрать, какие языки программирования надо изучить. Чтобы получить верные ответы на эти вопросы, разработчикам надо узнать все достоинства и недостатки всех технологий разработки мобильных приложений, в этой статье мы узнаем об этом.
Keywords: mobile application, mobile device, platform, programming language technology.
Ключевые слова: мобильное приложение, мобильное устройство, платформа, язык
Разработка мобильных приложений — это термин, используемый для обозначения акта или процесса, посредством которого программное приложение разработано для мобильных устройств, таких как персональные цифровые помощники, корпоративные цифровые помощники или мобильные телефоны. Эти приложения могут быть предварительно установлены на устройства во время производства, которые загружены пользователем с помощью различных платформ для установления мобильных приложений или являться поставляемыми в веб-приложении, которые обработаны на стороне клиента (JavaScript) или сервера. В настоящее время мы заметим стремительный рост продаж мобильных устройств, приходящих на замену персональному компьютеру. Количество пользователей мобильных устройств очень быстро растёт, поэтому нуждается в количестве и в качественных программных обеспечениях. Это приводит к постоянному бурному росту технологий разработки приложений для мобильных устройств.
После принятия идеи о приложениях, которые необходимо создать, предпринимателям и разработчикам нужно решить трудный вопрос, это выбор правильной технологии разработки этого приложения. Этот выбор зависит от цели приложения и от платформы, на которой приложение будет работать. У каждой платформы мобильных приложений имеется интегрированная среда разработки, предоставляющая инструменты, позволяющие разработчикам кодировать, тестировать и внедрять приложения на эту платформу. Сейчас на рынке существуют несколько платформ для мобильных устройств. Этими платформы являются:
Таблица 1. Мобильные платформы и их технологии разработки
Платформы Язык программирования Среды разработки Девайсы
iOS C++, С#, Objective-C Xcode, Xamarin Studio iPhone, iPad, iPod Touch
Android Java, C++, C# Eclipse, Xamarin Studio, Visual Stuodio Android devices
Windows Phone C# Visual Stuodio Windows phones
Blackberry OS Java, C++ Momentix IDE Blackberry phones
Symbian OS C++ Carbide Nokia phones
Bada C, C++ Bada Смартфон Samsung
На таблице видно, что самые популярные языки программирования для разработки мобильного приложения это Java, C++, C#, Objective-C.
Java является одним из самых постоянных используемых языков программирования в мире, поэтому навыки доступны во многих частных лиц, предлагающих свои услуги предприятиям. Это очень хорошая новость. Еще одна хорошая новость, с точки зрения производительности, Java представляет собой скомпилированный язык, который может быть запущен двумя различными способами: либо в окне браузера или в виртуальной машине, которая не требует браузер [1]. Такая гибкость имеет тенденцию означать много, когда речь идет о повторном использовании кода и обновлении программного обеспечения. Если мы хотим создать приложения на Android, тогда мы обязательно узнать хотя базовые знания о Java. Потому что Android основан на Java. Android SDK включает в себя множество стандартных Java-библиотек (библиотеки структуры данных, математические библиотеки, графические библиотеки, сетевые библиотеки и все остальное вам хотелось иметь). Android приложения выполняются в специальной виртуальной машине под названием Dalvi VM. Хотя детали этой виртуальной машины не имеют значения для среднего разработчика, но эта машина позволяет нам не беспокоиться о том, как наше приложение будет работать в различных устройствах платформы Android. Java создан долго после языков C и C++, поэтому Java включает в себя много мощных функций языков С и С++. Тем не менее, у Java не только мощные функции, а еще большие библиотеки, и эти библиотеки разработаны, чтобы помочь разработчикам создавать приложения [2].
C++ был построен специально для платформы независимости и находится в каждой отдельной операционной системе. Обычный мобильный пользователь может знать, что Android приложения написаны на Java и iOS приложения на Objective-C, но многие не знают, что есть больше С/С++ кода в памяти на устройствах, чем все остальное. Набор инструментов для Android NDK является отличным примером полной C/C++ поддержки, этот набор был добавлен первоначально для команды разработчиков игры, чтобы дать им возможность получить максимально возможную производительность из устройства. Многие из библиотек, доступных на этих устройствах подвергаются с помощью функциональных интерфейсов C. С является предшественником таких языков программирования как С++, Java, С#, JavaScript и Perl. Поэтому изучение языка С помогает нам понять другие языки. Язык С используется для разработки низкоуровневых приложений, так как считается ближе всего к аппаратному, уступая только ассемблеру. В языке С еще не хватало работы с объектами. Поэтому С++ был разработан, является одним из самых распространенных языков в мире. Google Chrome, Mozilla Firefox, Winamp и линейка продуктов Adobe были разработаны с помощью С++. Кроме того, некоторые современные игры и операционные системы были разработаны на С++ из-за быстрого процессинга и компиляции. Одно из наиболее значимых достоинств C++ то, что он сочетает свойства как высокоуровневых, так и низкоуровневых языков [3].
Когда в большинстве стран мира используется C++ для разработки программного обеспечения, Apple решил использовать в качестве основного языка программирования Objective-C. Как и C++, Objective-C является надмножеством языка C. Поэтому любые программы на С являются программами на Objective-C. Тем не менее, последний имеет ряд функций, которые специфическим образом взаимодействуют непосредственно с графикой, функциями ввода/вывода и отображения. Objective-C является частью среды разработки Apple и полностью интегрирован во все фреймворки iOS и MacOS. В последнее время Apple создал язык Swift для разработки приложений на их устройствах, и Swift основан из Objective-C.
Сейчас мы можем создавать приложения для устройств Android, IOS, и Windows, с помощью Visual Studio с помощью C #. Мы можем программировать на C# под Windows Phone, iOS и Android, это более чем 2.2 миллиарда устройств. Кроме мобильных устройств C# работает на многих встраиваемых,
десктопных и серверных платформах. У языка С# есть мощные возможности, объектно-ориентированное программирование и инкапсуляция позволяют максимально переиспользовать код. Reflection и dependency injection добавляют в язык мощь и гибкость. C# на iOS использует оптимизирующий компилятор LLVM. Им же собирается написанный на C и C++, iOS. Вы получаете лучшее из обоих миров: высокую продуктивность C# и производительность низкоуровневого языка. На Android C# работает быстрее Java из-за лучшего дизайна языка (value types, real-generic types, невиртуальные методы по умолчанию) и более зрелой Mono Runtime в сравнении с молодым Dalvik.
1. 6 Top Programming Languages For Mobile Development. [Electronic resource]. URL: http://www.informationweek.com/mobile/mobile-applications/6-top-programming-languages-for-mobile-development/d/d-id/1320687/ (date of access: 06.09.2015).
2. Learn Java for Android Development: Introduction to Java. [Electronic resource]. URL: https://code.tutsplus.com/tutorials/learn-java-for-android-development-introduction-to-java—mobile-2604/ (date of access: 13/09/2010).
3. Why C++ is the perfect choice for modern app development. [Electronic resource]. URL: http://betanews.com/2014/07/22/why-c-is-the-perfect-choice-for-modern-app-development/ (date of access: 22.07.2014).
MODEL TCP/IP Huy N.1, Duc B.2, Truong N.3, Linh L.4, Huy N.5, Huong L.6 (Russian Federation) МОДЕЛЬ TCP/IP Хю Н. Б.1, Дык Б. М.2, Чыонг Н. Д.3, Линь Л. Т. 4, Хю Н. Н.5, Хыонг Л. Ч. Т. Т.6 (Российская Федерация)
‘Хю Нгуен Ба / Huy Nguyen — студент, кафедра систем управления и информатики, факультет систем управления и робототехники; 2Дык Буй Минь /Duc Bui — магистрант, кафедра программных систем, факультет инфокоммуникационных технологий; 3Чыонг Нгуен Динь / Truong Nguyen — студент, кафедра систем управления и информатики, факультет систем управления и робототехники; 4Линь Лай Тхи /Linh Lai— студент; 5Хю Нгуен Нгок /Huy Nguyen — студент; 6Хыонг Лыу Чан Тхи Тхьен /Huong Luu— студент, кафедра проектирования и безопасности компьютерных систем, факультет информационной безопасности и компьютерных технологий, Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, г. Санкт-Петербург
Abstract: the Internet protocol suite is the conceptual model and set of communications protocols on which the Internet and most commercial computer networks are working. This protocol suite is named after its two main protocols, TCP (Transport Control Protocol connection) and IP (Internetworking Protocol). They are also the first two protocols are defined. How OSI model, TCP / IP is also divided into levels, and each level solves many problems associated with the transfer of data, and provides the higher layer, and uses the services of the lower layer.
Аннотация: стек протоколов TCP/IP представляет собой набор протоколов связи, на котором Интернет и большинство коммерческих компьютерных сетей работают. Этот набор протоколов был назван в честь его двух основных протоколов TCP (протокол управления транспорта связи) и IP (протокол межсетевого взаимодействия). Они также являются первыми, два протокола определены. Как OSI модель, TCP / IP тоже разделяется на уровни, и каждый уровень решает множество проблем, связанных с передачей данных, и обеспечивает высший уровень и использует услуги нижнего уровня.
Keywords: Internet Protocol, internet, package, layer.
Ключевые слова: протокол Интернета, интернет, пакет, уровень.