Jump to content
¯\_( ツ)_/¯
  • TAD GROUP are currently hiring penetration testers. Please read the topic in Career Central subforum.
  • Sponsored Ad
ТУК НЕ СЕ ПРЕДЛАГАТ ХАКЕРСКИ УСЛУГИ ! ×

Recommended Posts

ПРОГРАМНИ ЕЗИЦИ И СИСТЕМИ
(кратко описание на използваната терминология)

I. СРЕДИ ЗА ПРОГРАМИРАНЕ

1 .NET и използваните в нея езици за програмиране

Когато говорим за .NET програмиране трябва да знаем, че реално визираме Common Language Runtime (CLR), или казано с прости думи - общоезикова среда на изпълнение.

Това е среда за изпълнение на Common Intermediate Language (CIL или MSIL - асемблер от високо ниво) байт-кодове, в които се компилират изходните кодове, написани на някой от .NET съвместимите езици.

 

1.1 .NET съвместими езици


1.1.1. Delphi - Императивно структуриран обектно-ориентиран език за програмиране със строга статична типизация на променливите. 

Позволява паралелно програмиране, както и изграждане на програми работещи в реално време. Използва структури за директно интегриране на асемблерен код.

Използва се за проекти от клас А до клас АААА+.

Утвърден като стандартен език за програмиране при системите със специално предназначение;

 

1.1.2. Visual C# - Обектно-ориентиран език за програмиране създаден от Андерс Хайлсберг и Скот Вилтаум.

Обединява много от елементите на Pascal, Modula и Smalltalk, но е със C-синтаксис. За разлика от C++ не подържа множествено наследяване на класовете.   

Използва се за проекти от клас А до клас ААА+

 

1.1.3. Visula Basic .NET - Обектно-ориентиран език за програмиране

Няма съвместимост с Visual Basic, независимо от сходството в имената.

Използва се за проекти от клас А до клас АА+;

 

1.1.4. Visual J# - Специално създадена от Microsoft за .NET Framework интегрирана среда за разработка при използване на Java-подобен език. 

Няма нищо общо с Java, просто обезпечава Java-синтаксис и мнемонтика.

Използва се за проекти от клас А до клас АА+;

 

1.1.5. Visual F# - Мултипарадигмален език за програмиране. 

Ползва както компилатор така и интерпретатор.

Възможностите му са уникални и се използва за проекти от клас AAA.

 

1.2. Допълнения към езиците от високо ниво използвани в .NET

1.2.1. Managed Extensions for C++ - набор от допъслнения към езика за програмиране C++, позволяващ програми написани на C++ да се преработват за CLR и да работят върху платформана Microsoft .NET.

 

2. Embarcadero RAD Studio

Среда за бърза разработка на крайни приложения (Rapid Application Development - RAD) на фирмата Embarcadero Technologies, обединяваща в едно Delphi и C++ Builder в единна интегрирана среда за разработка.

RAD Studio позволява създаване на 32 и 64 битови надплатформени, апаратно-независими приложения (един програмен код се компилира без никакви изменения за Windows, UNIX, Linux, Android, iOS и OS X). 

2.1. Основни възможности

Пълна поддръжка на 64-разрядни универсални и iOS приложения
Визуализация на различни апаратни устройства и форм-фактори (планшети, смартфони, смарт часовници, 3D системи за виртуална реалност и др.)
Информационни системи за движение и локация на местоположението beacons.
AppAnalytics за Windows, OS X, Android и iOS.
GetIt пакетен менажер.
Enterprise Mobility Services (EMS).

2.2. Допълнителни възможности

C++ 11, базиран на CANG архитектура (пълна обратна съвместимост с Java, Objective-C, C#, Xcode, Xamarin и Visual Studio).
Паралелна компилация за C++;
Тестване на iOS 64x приложения;
Пълна поддръжка на iOS 8.4;
Пълна поддръжка на Android 5.1.1;
Пълна поддръжка на всички функции на Android;
Модулно тестиране за DUnitX за Android и iOS;
Пълна поддръжка DirectX 12;
Пълна поддръжка на API WinRT;
Пълна поддръжка на FireDAC за NoSQL MongoDB бази данни;
Поддръжка на MultiView интерфейсни решения;
VCL компоненти;
Пълна поддръжка на Beacon;
Редакция и интегриране на стилове;
Диспечер на библиотеки GetIt;
Разшитрени IDE възможности;
Директна интеграция с Microsoft Store, Google Play и Apple Store;
Пълна поддръжка на Windows 10 VCL, Windows 10 FMX, WinRT/UWP и др. интерфейсни решения.
Създаване на изключително мощни REST сървъри, които могат да работят както като процес, така и като приложение или библиотека;
Независими и Apch интегрирани сървъри;
Подръжка на над 200 вида телекомуникационни протоколи и др..
. . .

следва продължение

 

P.S. Уважаеми колеги,

За да можем заедно да работим ефективно и пълноценно в областта на IT технологиите е нужно да се разбираме и да общуваме на един език. Голямата ми молба е като начало нека се научим да се изразяваме на български език, защото явно е, че англоезичната терминология, която ползвате, силно се отличава от тази, която е утвърдена.

Ако сте обърнали внимание, в пасажа за .NEТ никъде не се споменава за HTML, SCC, Java Script, Python, Ruby и др.. Всички те са тема на друг вид разглеждания, а именно дизайна на web-документи и приложения. Това е друга област, която ще обсъждаме в последващите ни разглеждания.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Много благодаря, но трябва да се довърши.

 

  • Like 1

Share this post


Link to post
Share on other sites

Мисля, че е изключително важно да се разясни какво е компилатор, транслатор и интерпретатор. Според мен (това е лично мое мнение) е много важно да се обясни защо изучаването на базовите принципи на програмирането (не на програмните езици, а на програмирането като такова) е от огромна полза за всички, които се занимават с киберсигурност. Повярвайте в целият свят няма да намерите нито един ВУЗ, в който определени въпроси, имащи непосредствено отношение към кибернетичната сигурност да се изучават. Изучава се информационната сигурност, но тя е просто един малък елемент от цялото.

Share this post


Link to post
Share on other sites

Днес се регистрирах тук и разглеждам засега. Стана ми интересно защо не виждам езици като С и С++, компилатори като MSVC++  и gcc/g++?

От 2 десетилетия пиша на тези езици и ми е страннно, че ги няма. Идеи?

  • Thanks 1

Share this post


Link to post
Share on other sites

Здравейте Dev.null,

Преди всичко ми позволете да Ви благодаря за направената забележка.

Разбира се, че има и C++ и C (които са различни езици макар да имат сходен синтаксис). 

Това, с което сме започнали темата е със средите за разработка. Идеята бе да започнем с надплатформените решения (каквото е Delphi, един код за Windows, iOS, Android, Linux, .NET, както и възможност за непосредствена имплементация на assembler) и да продължим със специализираните средства за разработка. Отдолу е написано "следва продължение ... ".

Това е само началото на темата. Ето и малко информация на въпросите, които задавате.

. . .

Microsoft Visual C ++ (MSVC)

Microsoft Visual C ++ (MSVC) е интегрирана среда за разработка на C ++ приложения, разработена от Microsoft и доставяна като част от пакета Microsoft Visual Studio, или като безплатен функционално ограничен модул към Visual C ++ Express Edition.

Заменя интегрираната среда за разработка на Microsoft QuickC.

Visual C ++ позволява разработка на  приложения както на Managed C ++, така и на C ++ / CLI, а също така и на стандартен C ++. По този начин разработчиците са в състояние да генерират код както за .NET Framework така и за изпълнение в “чиста” Windows среда. В това отношение Visual C ++ е уникален сред другите езикови инструменти, предоставени от Visual Studio, тъй като нито Visual Basic .NET, нито Visual J # са способни да генерират "чист"  код за Win32, за разлика от предишните версии (съответно Visual Basic и Visual J ++).

 

Учебни материали по MSVC

https://docs.microsoft.com/en-us/previous-versions/60k1461a(v=vs.140)

 

Примери на MSVC

https://docs.microsoft.com/bg-bg/cpp/overview/visual-cpp-samples?view=vs-2019

 

Ще продължим темата ....

Обещавам, но ще се радвам ако и Вие споделите опит.

 

Share this post


Link to post
Share on other sites

Cross-paltform framework  (извинете за чуждиците) за С++ е Qt. Ето линк към страницата им: https://www.qt.io/. Поддържа natively всичко до тук изборено + всякакви модификации на embedded Linux, чрез съответните toolchain-и. Имайте предвид, че този framework съдържа всичко необходимо за програмиране - класове за GUI, бази данни, сокети, web - всичко. Освен това, Qt има собствена среда за програмиране, еднаква за всички операционни системи, но ако държите, можете да го ползвате и чрез интеграция с M$VC++.  Ако не държите обаче на потребителски интерфейс, а искате да пишете просто конзолни приложения, можете да използвате чист STL за С++. STL вече е част от стандарта на езика от 2011 насам. Това в момента са топ библиотеките за С++. Много умряха - MFC, Borland C Builder и други. Boost съшо вече малко се използва заради дългото време на компилация. Много може да се изпише за С++, но това са основните неща, на които можете да обърбнете внимание в момента. Езика е труден и сложен, но свободата на действие, която дава, се отплаща :-)

Освен това да допълня, че на пазара на програмисти Delphi умря отдавна, така, че по-добре не се захващайте с него - все едно да тръгнете да яздите умрял кон.

Това, което се търси в момента е Java, Java Script, .NET, C/C++, Python, Perl. В темата може би е по-добре да се обърне внимание на живите и актуалните езици - само съвет.

Дано съм бил полезен! :)

 

  • Thanks 1

Share this post


Link to post
Share on other sites

Преди всичко Ви благодаря за поста.

Ако ми позволите една малка забележка. .NET не е език за програмиране. Това е програмна платформа (Common Language Runtime), което е доста различно. 

Мисля, че в информацията Ви за развитието на програмните езици през последните години  има известни празноти.

 

За справка:

https://www.embarcadero.com/products/delphi

Същото и за C++ Builder

https://www.embarcadero.com/products/cbuilder

 

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

 

Що се отнася до "пазара" ... Мисля, че визирате това, което в момента се предлага в Jobs.bg или други подобни. Ако обаче погледнем корпоративния сектор, там се вижда нещо различно. Ето Ви доказателство:

https://www.ideracorp.com/careers

Да не споменавам за търсенето и заплащането на Delphi програмисти в hh и др. професионални ресурси.

 

Има и още нещо, за което съм писал многократно. Има огромна разлика между скриптови езици и езици за програмиране.

 

Пример:

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

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

В този ред на мисли.

Към настоящият момент само и единствено при Delphi и C++ Builder имаме достатъчно мощни механизми за паралелна обработка. Да не споменавам за възможността за разработка на приложения за 64 Bit версия на iOS и не само (за справка Apple). Или да поговорим за GIS-системите. Или за SUB-системите. Или за съвременните DLP (някъде тук даже давам примери как се прави това)

Само не казвайте, че FM, ЕСМ, DataSnap, BAAS, Firedac, Tethering и др. са "остарели понятия".

В този ред на мисли, дали ще бъде удобно да ми посочите някое Ваше приложение? Много ще се радвам да видя какво сте направили.

 Лично аз съвсем спокойно пиша сктриптове на Java Script. Започнал съм с IBM Web Sphere (ако не помните, разпространяваше се с дистрибутива на Novel). По онова време "истинските програмисти" (които погребваха Delphi, VB, ADA, LISP и пр.) бъркаха Java аплетите със скриплети, но това е друга тема. Да не говорим, че jQuery не е нищо повече от елементарен copy/paste на примерите в Web Sphere за работа със слоеве (за динамични web-приложения).

Все пак ако питате мен скриптовете на VB са много по-добро решение, но това е лично становище, базирано на надеждност, функционалност и бързодействие. 

Вижте, не знак къде, какво и как сте работили. Гарантирам Ви, че към момента има много програмни езици, за които дори и не сте чували (аз също).

Ще бъда съвсем откровен. Определения като "умряха" (да споменавам ли FORTRAN, който става все по-търсен), "живи и актуални" не говорят нищо добро за този, който ги ползва. На мен многократно са ми правили остри забележки за подобни изказвания. Най-лесно това се разбира, когато се работи по проекти от клас AA или AA+.

Но ... Темата е доста обширна.

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

Аз лично обичам да се придържам към фактите, а и аз създавам продукти, а не работя "на ишлеме" (не съм "оутсорсер" както е модерно да се казва).

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

Share this post


Link to post
Share on other sites

Имам един доста забавен въпрос:

Какво знаете за декомпилаторите? 

Кой е основният програмен език, за разработка на декомпилатори? Кой е програмистът допринесъл най-много за развитието на декомпилиращите програми и кое е най-великото му произведение?

Share this post


Link to post
Share on other sites

Мдаааа ....

През "далечната" 2004 година издателство Sams Publishing издава двутомно издание, написано от Хавиер Пачеко и Стийв Тиксейра.

През следващата 2005 година София ПРЕС превежда изданието на български език.Та в тази книга има един много интересен абзац, написан от Браян Лонг.

Той не просто обяснява какво е това асембли, как се ползва и за какво служи, но и дава един доста интересен пример.

В този пример директно е показано какс е дизасемблира ... C# и не само.

Разбирате ли за какво говоря?

Годината е 2004. Говори се за дизасемблиране на C# (мноооого модерен в момента език). :D

Но там има къде, къде по-забавни текстове, които определено няма да намерите в internet.

И ако някой е забравил пак по онова време Windows XP се използваш активно а .NET (мнооооого модерна в момента) си беше нещо съвсем обичайно. :D

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.