PDA

Просмотр полной версии : Языки программирования


VictorS
11.10.2006, 23:36
Вот, заняться мне нечем, решил узнать есть ли тут фанатики программирования. :) А заодно хочу просветить тех интересующихся, которые только в начале своего пути. :)

Язык программирования — формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя (например, компьютера). Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах.

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

Каждый язык программирования может быть представлен в виде набора формальных спецификаций, определяющих его синтаксис и семантику. Эти спецификации обычно включают в себя описание:
Типов и структур данных
Операционную семантику (алгоритм вычисления конструкций языка)
Семантические конструкции языка
Библиотеки примитивов (например, инструкции ввода-вывода)
Философии, назначения и возможностей языка

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

Компилируемые и интерпретируемые языки

Языки программирования делятся на два класса — компилируемые и интерпретируемые.

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

Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) ее текст без предварительного перевода. При этом программа остается на исходном языке и не может быть запущена без интерпретатора. Можно сказать, что процессор компьютера — это интерпретатор машинного кода.

Разделение на компилируемые и интерпретируемые языки является несколько условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль, можно написать интерпретатор. А для любого интерпретируемого языка можно создать компилятор — например, язык Лисп, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений. Создаваемый во время исполнения программы код может так же динамически компилироваться во время исполнения.

Некоторые языки, например, Java и C#, находятся между компилируемыми и интерпретируемыми. А именно, программа компилируется не в машинный язык, а в машинно-независимый код низкого уровня, байт-код. Далее байт-код выполняется виртуальной машиной. Для выполнения байт-кода обычно используется интерпретация, хотя отдельные его части для ускорения работы программы могут быть транслированы в машинный код непосредственно во время выполнения программы по технологии компиляции «на лету» (Just-in-time compilation, JIT). Для Java байт-код исполняется виртуальной машиной Java (Java Virtual Machine, JVM), для C# — Common Language Runtime.

Классы языков программирования

Функциональные
Императивные
Процедурные
Языки векторного программирования
Аспектно-ориентированные
Декларативные
Языки динамического программирования
Учебные
Описания интерфейсов
Прототипные
Объектно-ориентированные
Рефлексивные
Языки логического программирования
Языки параллельного программирования
Сценарные, или скриптовые
Узкоспециализированные
Эзотерические

На данный момент самыми развивающимися являются обьектно-ориентированные языки программирования.


Какие языки использовал и использую я: Лого, QBASIC, Pascal, C, C++, Perl, JavaScript, PHP, *SQL, assembler x86, sh/bash/zsh (*nix shell), Java, LISP, C#. (Курсивом выделено то что используется в реальной работе.)
В планах изучить: Python, Ruby.

Если заинтересовали какие-то термины или просто хотите поболтать на эту тему, то спрашивайте. :) Только избавте меня от вопроса "а как написать программу, которая... ?" ;)

NOboDy
12.10.2006, 01:29
Вопрос ввел в ступор:)
По работе -- программист не каждый день.
Хобби оно или нет -- зависит от настроения.
А реверсинг -- это программирование или нет?

P.S. Отвечать не стал. :)

Andrew
12.10.2006, 01:59
Последователь культа Светочки: я - программер со стажем. Программирую в Word, Exсel, Access и 1С-бухгалтерии.

P.S. :D

VictorS
12.10.2006, 08:33
NOboDy, реверсинг не бывает же только ради его самого. А вообще, раз определиться не можешь, выбирай последнее. :)

Andrew, на самом деле программируешь? Просто в excel и access можно делать вещи с некоторой долей навороченности даже. А в 1С тоже программирование присутствует. Причем люди, которые занимаются программированием в этих сферах себя могут называть программистами с большей долей истинные чем те кто изучают языки программирования в школе/университете и выполнят стандартные задачки.


Администрация, добавте вариант ответа "умею, но не увлекаюсь".

MDM
12.10.2006, 09:41
Обожаю что-нибудь писать. Последние несколько лет писал, в основном, для удовольствия, потому пользовался исключительно Delphi. Не потому, что другие не нравятся, а потому, что так сложилось. :)
В последнее время пришлось вспомнить PHP, хотя после нескольких лет сложновато. До сих пор, время от времени, приходится сверяться с мануалом по синтаксису. :D
А еще немного освоил язык LUA, когда писал скрипты для Far Cry.
Вот три языка, которые использую часто.

Andrew
12.10.2006, 11:06
Andrew, на самом деле программируешь?
Нет :) Ключевое слово: "Светочка" :rolleyes:
А на счет остального - узнал эти факты как раз из тех форумов, где побывала эта особа :)

VictorS
12.10.2006, 11:17
MDM, да, точно, есть же еще LUA, который применяется во многих играх. Его я тоже пробовал изучить, но времени не хватило. Наверное стоит добавить в //TODO:. :)

MDM
12.10.2006, 12:08
Кстати, интересный язык, этот LUA. Пока не прочитал, что он "чем-то похож на Pascal", был твердо уверен, что он напоминает мне С++ и PHP.

VictorS
12.10.2006, 12:19
MDM, ну в принципе он что-то среднее. Вот выдержка из WikiPedia:
Lua — легковесный (англ. light-weight) интерпретируемый язык программирования, разработанный подразделением Tecgraf Католического университета Рио-де-Жанейро (Computer Graphics Technology Group of Pontifical Catholic University of Rio de Janeiro in Brazil). Является свободно распространяемым, с открытыми исходными текстами на языке Си.

По возможностям, идеологии и реализации язык ближе всего к JavaScript, однако Lua отличается более мощными и гораздо более гибкими конструкциями, спроектирован с целью «не плодить сущности сверх необходимого». Хотя Lua не содержит понятия класса и объекта в явном виде, механизмы объектно-ориентироанного программирования с поддержкой прототипов (включая множественное наследование) легко реализуются с использованием метатаблиц, которые также позволяют перезагрузку операций и т. п.

Синтаксис Lua можно описать как нечто среднее между Си (Ява Скриптом) и Паскалем. Подобно таким скриптовым языкам как Python и Icon допускает многократные присваивания. ...
Язык используется в следующих играх:

* Far Cry
* World of Warcraft
* Bioware’s Baldur's Gate series
* MDK2
* аддоны к Half-Life 2

LUA широко используется как язык скриптов в программном обеспечении сети Direct Connect.

MDM
12.10.2006, 12:24
аддоны к Half-Life 2
Интересно, интересно... :duma:

Dead Krolik
12.10.2006, 14:33
. PHP .

oldman
12.10.2006, 17:19
Лучший язык для нейро-лингвистического программирования россиян - русский. Во-первых, родной; во-вторых - самый богатый.

Poet
12.10.2006, 19:35
Учусь и ещё раз учусь. Умею немного на Дельфе, ХТМЛ тож осваиваю. Бейсик ща в школе буду проходить. Всёж на программера хочу пойти.

VictorS
12.10.2006, 20:43
ВНИМАНИЕ! Хочу всех предостеречь от ошибки!
HTML - это не язык программирования, а язык разметки текста.

Poet, если на программера, то можешь с "васика" начинать. Но если на программиста, то я бы советовал начинать с Pascal.

VictorS
12.10.2006, 23:40
Хм... Статистика меня немного напрягает. Интересно, почти 70% тех кто программирует или собирается этим заниматься - это специфика данного форума, или это распространенное явление среди интернетчиков? Многова-то как-то... Мне кажется что каждым делом должен заниматься специалист. :rolleyes:

MDM
12.10.2006, 23:48
2006-й год на дворе. Может, поэтому? Компьютеры повсюду. Рано или поздно, пользователю становится интересно, как это работает. :D

VictorS
13.10.2006, 00:00
А я хочу кушать хлебушек. :) И желательно с икрой. :D

А теперь более серьезно. Обычный пользователь учит язык программирования либо просто от нефиг делать, либо хочет сделать маленькую программульку/страничку. Ну с первой категорией... Пускай учат, вдруг действительно что-то получится. А вот вторым иногда легче заказать эту программульку или страничку за небольшие деньги/пиво у специалиста/друга-программиста. Странички легче делать на готовых движках с использованием CMS, и тогда помощь может понадобится (а может и нет) только при установке и создании скина (если хочется индивидуальности). А некоторым вообще достаточно заюзать какой-нибудь визуальный редактор. Так что, 6 человек проголосовавшие за пункт #3 задумайтесь нужно ли вам это. ;) Работа программиста не такая уж и легкая, особенно если менеджер попадется глупый или придется общаться с заказчиками самому.

NOboDy
13.10.2006, 00:09
VictorS занервничал. :D
Насчет заказать у профессионалов:
2615

Andrew
13.10.2006, 00:24
VictorS, странные речи ведешь. Каждый волен заниматься любым делом. Захочу - буду изучать бэйсик, захочу - буду изучать основы выпечкми пирожков. А профи/не профи - это уже совсем другой вопрос. Если человеку по душе то, что он делает(или пытается делать), то так тому и быть. Кроме того, знаешь ли ты каков процент выпускников ВУЗов, которые работают по специальности?

VictorS
13.10.2006, 00:38
Andrew, а что конкретно странного. Я как раз написал что тем кому нравится и больше делать нечего пускай учат. А просто у некоторых возникает желание страничку/форум/блог завести и ради этого они начинаю что-то учить, а в итоге приходят к тому, что в принципе ни чего особо знать и не нужно, а время-то потеряно.

Чтобы найти пример я набрал в гугле "моя домашняя страничка" и вот что нашел:
- http://kirlit.narod.ru/ (этот человек закончил Белорусский Государственный Университет Информатики и Радиоэлектроники?)
- http://dashutca.narod.ru/ (Даша изучила как делать html-странички)
- http://shurik.itp.ac.ru/ (Може программить этот веб-мастер умеет, но дизайн... Специалисты должны работать!)
- http://palva.narod.ru/oval/ (Что-то мне подсказывает что сделано это все ручками, а можно же было CMS с галлереей поставить.)
И там еще много такого.

NOboDy, грустно то что картинка верна бывает, если менеджер проекта сработал не профессионально.

Andrew
13.10.2006, 01:13
Я как раз написал что тем кому нравится и больше делать нечего пускай учат. А просто у некоторых возникает желание страничку/форум/блог завести и ради этого они начинаю что-то учить, а в итоге приходят к тому, что в принципе ни чего особо знать и не нужно, а время-то потеряно.
Ну тогда извиняй :) Выглядел пост, как "я тут шарю, а вам делать нечего" :blink: Кроме шуток :)
Да и живем мы только для того, чтобы учиться...... на собственных ошибках :)
ой.... оффтоп пошел

Inxo
14.10.2006, 13:09
А я хочу кушать хлебушек. :) И желательно с икрой. :D

А теперь более серьезно. Обычный пользователь учит язык программирования либо просто от нефиг делать, либо хочет сделать маленькую программульку/страничку. Ну с первой категорией... Пускай учат, вдруг действительно что-то получится. А вот вторым иногда легче заказать эту программульку или страничку за небольшие деньги/пиво у специалиста/друга-программиста. Странички легче делать на готовых движках с использованием CMS, и тогда помощь может понадобится (а может и нет) только при установке и создании скина (если хочется индивидуальности). А некоторым вообще достаточно заюзать какой-нибудь визуальный редактор. Так что, 6 человек проголосовавшие за пункт #3 задумайтесь нужно ли вам это. ;) Работа программиста не такая уж и легкая, особенно если менеджер попадется глупый или придется общаться с заказчиками самому.
Хм... ты часто перед программированием интерфейса к профессиональным дизайнерам обращаешься? Особенно на своих компонентах... Еще вопросы? :)

VictorS
14.10.2006, 13:48
Inxo, постоянно. У нас серьезная фирма. ;) А когда халтурю, то дизайн мне предоставляет заказчик. :P

Dima99
14.10.2006, 13:51
Слушайте а кто нить тут умеет кряки создавать или нет. Я где то читал как делать но не помню где. Последнее время пытаюсь это сделать, но видимо ПАСКАЛЬ и ДЕЛФИ сдесь не помошник

Inxo
14.10.2006, 13:56
Inxo, постоянно. У нас серьезная фирма. ;) А когда халтурю, то дизайн мне предоставляет заказчик. :P
Ну тогда чего переживать то? :) Интересуются все... а вот что они в этой области работать станут это еще не факт... вот ты, как помню, когда-то к linux присматривался, изучал... но что-то не очень верится, что ты бросишь любимое занятие и будешь заниматься настройкой серверов... хотя да, смотря сколько за это станут платить. :)

Слушайте а кто нить тут умеет кряки создавать или нет. Я где то читал как делать но не помню где. Последнее время пытаюсь это сделать, но видимо ПАСКАЛЬ и ДЕЛФИ сдесь не помошник
Умею, но делаю редко. :) тут дебаггер нужен. :)

N0rd
14.10.2006, 13:57
Inxo, постоянно. У нас серьезная фирма. ;) А когда халтурю, то дизайн мне предоставляет заказчик. :P
Ты вроде вел речь про написание маленькой програмульки/странички для себя. Когда для себя пишешь, тоже обращаешься к профф дизайнерам?:)

Dima99
14.10.2006, 14:03
Inxo,
прикольно наверное еслиб я умел я токо так бы ломал старфорсы всякие

VictorS
14.10.2006, 14:07
Dima99, из языков здесь помошник только assembler в большинстве случаев, а инструменты: дизассемблер, отладчик, hex-редактор, анпакер для всяких упаковщиков типо ASPack и мн. др.

Inxo, да я не переживаю. Я просто предлагаю людям подумать серьезно. Сам я осознано шел к этой цели с 8-ого класса.

N0rd, только по этому у меня до сих пор толком нет своей странички - не могу сделать дизайн. Понятие профессиональный дизайнер понятие тоже растяжимое... А вот курс по дизайну окон в Windows я прослушал и могу делать их. Кстати, на следующей неделе я уже немного больше буду соображать и в web-дизайне. ;)


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

Inxo
14.10.2006, 15:15
Ты вроде вел речь про написание маленькой програмульки/странички для себя. Когда для себя пишешь, тоже обращаешься к профф дизайнерам?:)
Это либо мне... либо полезно ставить обращения... я когда пишу проги они все под консоль в основном... думать об интерфейсе не приходится... и все же... я наверно предпочту работу профессионального дизайнера, чем программировать под Windows.

хочу mac

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

N0rd
14.10.2006, 15:16
Это либо мне... либо полезно ставить обращения... я когда пишу проги они все под консоль в основном... думать об интерфейсе не приходится... и все же... я наверно предпочту работу профессионального дизайнера, чем программировать под Windows.

хочу mac
Дык по цитате понятно к кому я обращался:) .

Dima99
14.10.2006, 16:19
VictorS,
А не мог бы ты дать что нить из того что помогло бы???

VictorS
14.10.2006, 16:31
Dima99, неа, я на данный момент такими вещами не занимаюсь.