За компютърния език

12 отговора 685 прегледа
#1

За компютърния език

Провокиран от една избрана статия в един сайт (много единици станаха, но не обичам да правя антиреклама), която започва с "Prolog е компютърен език ..." си спомних неща, които и студентите знаят. Не мислите ли, че компютърен език е машинният език на процесора, който е доста далеч от Пролог?
(Тема-закачка, целяща да провокира дискусия.)

[линк]
Отговор
в отговор на ДъpвeнФилocoф #2

Re: За компютърния език

Уточни, моля те - ти правиш ли разлика между компютърен език и език за програмиране? Ако да, нищо чудно Prolog да не е баш компютърен език. Според мен, обаче, да се каже "компютърен" значи твърде да се детайлизират нещата. Ако реша да програмирам кафеварката си на някакъв език (евентуално Prolog, въпреки че не ми хрумва подходящ начин), от това езикът няма да стане по-малко компютърен. М?


Отговор
в отговор на Gwydion #3

Според мен

разлика си има. За мен компютърен език е онзи, който е в най-малкото в чиповете на компютъра. Ако японците са направили вече оная прословута Пролог машина може да се каже, че едикой си Пролог е езика на ОНАЗИ машина. А ако програмираш кафеварката си на C++, това няма ли да го прави кафеварски език?

[линк]
Отговор
в отговор на ДъpвeнФилocoф #4

Re: Според мен

ami tochno tuk idva i ideiata za abstrakciata... razlichni niva ezici i t.n., koito se dokazva che sa ekvivalenti i t.n. ... turing-complete da ti govori neshto?

Отговор
в отговор на :))) #5

Говори ми

... и какво?

[линк]
Отговор
в отговор на ДъpвeнФилocoф #6

Re: Говори ми

Прощавай, известно време се затрих в къщи, а там Интернетът не ходи...
Добре де, излиза, че колкото видове процесори, толкова и компютърни езици има, нали така? Няма лошо, но някои от тях дори нямат имена, или ако имат, само инженерите, които са ги създали, ги знаят. За практически цели (да речем, за създаването на текстов редактор) едва ли някой ги използва, да не говорим, че сигурно има хора, които дори не подозират за съществуването им.
Иначе предполагам, че си прав - в крайна сметка, без значение дали е написана на C или PASCAL, една програма в изпълнима форма представлява инструкции на машинен език. Апропо, не се опитвам да ти противореча на всяка цена, а просто казвам какво мисля.

П.П. Ако си склонен да обясниш за Turing-complete и еквивалентността на езиците, много ще се радвам, тъй като очевидно си по-сведущ. (OFF-TOPIC: Да си кажа честно, като прочетох "говори ми", се сетих един виц за Буратино. Но това е за друг клуб...)


---
Brain like a computer - keeps making fantastic mistakes.
Отговор
в отговор на ДъpвeнФилocoф #7

я да опростим нещата:

има машинен език - нулички и единички групирани в байтове. Той е уникален за всеки един процесор.

има асемблерен език - мнемонични инструкции, които могат да са различни за различните процесори, ама могат да са и еднакви. Този език се преобразува от специална програма в машинния за даден процесор език.

има език от високо ниво - инструкциите от него се обработват от специална програма "компилатор" и се превръщат в машинен език.

Та ако искаме да постигнем консенсус, нека просто кажем Prolog е програмен език от високо ниво. Ако искаме да сме съвсем в час, казваме и от кое ниво е този език от високо ниво.

А на чист машинен език от 30 години никой вече не пише. Затова някои неща се подразбират. И никой не си напряга мозъка да ги уточнява.

Отговор
в отговор на Gwydion #8

С извинение за закъснението...

... Има едно твърдение, наречено тезис на Чърч - Тюринг (беже недоказан, ако има промяна ще се развам да го науча) според което всеки алгоритъм може да се изпълни на машина на Тюринг. Има няколко абстрактни машини, еквивалентни една на друга, една от които е машината на Тюринг. Ако един алгоритъм е изпълним на нея, то това не зависи от начина по който е описан. В тази връзка ми се струва, че ника "усмивка" имаше предвид точно това.

Два формални езика са еквивалентни, трябва да са еквивалентни формалните граматики, които ги пораждат. Това би осигурило еквивалентен синтаксис. Е, в общия случаи това не е така, да не говорим, че зад даден синтаксис може в различните му реализации да има различна семантика.

Отговор
в отговор на нaблюдaвaщ #9

Което си е вярно ...

вярно си е. Но не съм съгласен, че не бива да си напрягаме мозъците да уточняваме. Защото ще се превърнем в елит от Знайковци и стадо от консуматори.

Отговор
в отговор на ДъpвeнФилocoф #10

Re: Което си е вярно ...

По определение: Компютърен език е програмен език за даден клас компютри.

Примерче:
Българския език е славянски език. Но славянския език не е само български. И тук можеш да чуеш мнения как преди 1200 години разликите между езиците били по-малки. Аз не си спомням това време, не знам.

А ако мога да си позволя да перефразирам твоята мисъл, то Знайковците отдавна са станали елит от консуматори, а нови Знайковци няма. Или поне не са същите, както преди. Друга (а може би същата) тема за дискусия.

Отговор
в отговор на нaблюдaвaщ #11

Уточнение

Компютърният език е ЕП за някакъв клас компютри, но не всеки ЕП за някакъв клас компютри е компютърен език.

Пример: Ако не се лъжа Visual Basic има компилатор само за Windows. Това би направило Visual Basic компютърния език за класа машини с инсталиран Windows. Ако обаче в един момент форматираш дисковете и на същата машина сложиш Линукс какво става?

Отговор
в отговор на ДъpвeнФилocoф #12

Re: Уточнение

Уточнението се приема. Усетих, че примера не е прецизен. Но нямах време за по-добър.

Обикновено думата Visual се отнася за ЕП разработен за Microsoft Windows. Когато си сложиш Linux си търсиш BASIC, който да работи под тази ОС.

Между другото всички съвременни версии на BASIC приличат на едноименния им първообраз само по името си. Стандарт за този език май няма. Или поне аз не знам. Ама знам че името му идва от Beginner's All-purpose Symbolic Instruction Code, т.е. е съкращение. Затова би трябвало да се изписва изцяло с големи букви. Но след като русначетата по едно време му викаха Васик, вече всичко е позволено.

Отклонихме се от темата, ама аз обичам да си бърборя.

Отговор
в отговор на нaблюдaвaщ #13

Re: Уточнение

Абе примера си е хубав, дефиницията можеше да се доизпипа.

Еееееех, добрия стар BASIC (с главни букви) ... липсва ми понякога... Най-големия майтап беше, че като взех да уча Паскал първо се втрещих "Ма как така, като няма номер на ред???" Ма наистина това си е друга тема.

Отговор