code

Запуская какую-нибудь программу или игру некоторые из вас задаются вопросом, как – же они работают. Этот вопрос очень интересный, как и ответ на негоя постараюсь сегодня ответить…

Любая программа или игра хранится на носителях информации, например жесткий диск, карта памяти, CD или DVD-диск или еще какие-нибудь другие, но после запуска она загружается в оперативную память компьютера или другого устройства и оттуда начинает свою работу.

Специальная информация (машинные коды) по блокам передаются процессору, а тот в свою очередь их перерабатывает и выполняет: производит вычисления, передает команды видеопроцессору, звуковой карте или внешним устройства через контроллеры.

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

Различают два вида программирования:

1. > низкоуровневый

2. > высокоуровневый

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

Для примера приведу несколько компиляторов (программы, переводящие наши записи в машинный код для непосредственного исполнения на компьютере) ассемблера низкоуровневый язык программирования :

FASM,MASM,TASM,NASM

На всех из них пишут на ассемблере, но у них разные диалекты. Все они распространены в равной доле, но сейчас мы рассмотрим только FASM.

Здесь приведу пример программы на ассемблере для Windows и DOC:

Windows:

include 'win32ax.inc'.codemain:invoke MessageBox,NULL,'Hello, World!','Example_cod:',MB_OKinvoke ExitProcess,0.end main

DOC:

org 100h

mov ah,9h
mov dx,hello
int 21h
mov ah,8h
int 21h
int 20h

hello db 13,10,»Hello, World!$»

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

Высокоуровневое программирование куда проще и интереснее. Современные компиляторы имеют огромные возможности, сравнимые с ассемблером. Благодаря своей простоте их количество огромно. Их принято разделять на узконаправленные и универсальные.

Для примера приведу несколько распространенных языков :

Delphi (продолжение Pascal), C++, Java (интерпретируемый язык).

Компилятор этих языков, тоже много.

Здесь приведу программу на этих языка выводящую «привет» на монитор.

Pascal:

Var a: string;

begin

a:=’привет’;

write(a);

end.

Delphi:

{$APPTYPE CONSOLE}

begin

write(‘hello’);

end.

C++:

#include <iostream>

int main()

{std::cout << «Hello, world!» << std::endl;

return 0;}

Вот мы рассмотрели несколько языков, на которых сейчас пишется большинство программ.

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

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

Он идеально подходит для начинающих программистов. Писать программы на нем несложно, он не учитывает регистр переменных, функций, процедур и т.д.

Но его возможности ограниченны, поэтому вам придется переходить на другой современный язык программирования…

 

  3 комментария в “Как работают программы и как их пишут?”

  1. спасиба помогли XD

     
  2. Ты молодец. Спасибо. Будь таким как есть. Счастливо!

     
  3. А машинный, кибернетический вид программирования — это низкоуровневое или высокоуровневое программирование, или и первое и второе, а так же и комбинированное программирование — общее их объединение между собой?! Машинное кибернетическое программирование — это такое программирование я предполагаю, при котором, создают путём, в том числе и метода случайных комбинаций, компьютеры и их программы, какие-программы, в том числе и инновационные программы — те, которые ещё не придумал человек, а когда он удосужится их придумать не всегда при этом людям известно!!!

     

 Оставить комментарий

(обязательно)

(обязательно)

 
Copyright © 2012. Linuxguru.ru