기존의 모든 프로그래밍 언어. 프로그래밍 언어 목록. 저수준 및 고급 프로그래밍 언어. 프로그래밍 언어의 수준

저자로부터:우리 손님 Peter Businessmans의 기사. 피터 - 프론트엔드 개발자그는 SCSS의 글쓰기 스타일을 즐기는 Audience 사이트에 있습니다. 오늘 그는 내가 정직한 CSS 트릭이라고 부르는 것을 보여줄 것입니다. 전체 웹은 수직입니다. 일반 책처럼 사이트를 왼쪽에서 오른쪽으로, 위에서 아래로 읽습니다. 하지만 때로는 수직성에서 벗어나 뭔가 이상한 일을 하고 싶을 때도 있습니다. 수평 목록. 아니면 더 미친 수평 사이트!

다음과 같이 할 수 있다면 좋을 것 같습니다.

/* 가짜 코드 */ div ( 스크롤 방향: 가로; )

/* 가짜 코드 */

div(

스크롤 방향: 가로;

불행하게도 이런 일은 일어나지 않을 것입니다. 이것은 CSS에서도 계획되지 않았습니다.

내가 일하는 회사가 이것을 실제로 사용할 것이기 때문에 이것은 너무 안타깝습니다. 우리는 프레젠테이션을 많이 하는데, 프레젠테이션은 상당히 수평적인 일입니다. 일반적으로 슬라이드의 가로 세로 비율은 4:3 또는 16:9입니다. 이 때문에 우리는 끊임없는 문제수평 슬라이드와 수직 웹 기술로 "우리"는 나를 의미합니다. 하지만 제가 좋아하는 것은 도전입니다.

또 다른 사용 사례

나에게 일어난 일 구체적인 방법응용 프로그램. 고객이 하나의 슬라이드에서 모든 제품을 볼 수 있으면 편리할 것이라는 생각입니다. 당연히 제품 카탈로그는 한 가지 형태로 정리되지 않습니다. 따라서 우리는 카탈로그를 각각 가로 스크롤 기능이 있는 세 가지 범주로 나누기로 결정했습니다. 따라서 가장 인기 있는 세 가지 제품이 각 카테고리에 표시되고 덜 중요한 제품이 공개됩니다. 쉬운 접근.

JavaScript가 없는 메소드

우리 모두는 JS에서 이를 수행할 수 있는 방법이 많다는 것을 알고 있습니다. 가로 스크롤. CSS-Tricks에 대한 몇 가지 예가 있습니다. 이 아이디어가 실제로 구현될 수 있을지 궁금합니다. 순수 CSS. 해결책은 매우 간단했습니다.

요소가 포함된 컨테이너를 만듭니다.

아래쪽 가장자리가 오른쪽에 오도록 컨테이너를 시계 반대 방향으로 90도 회전합니다.

컨테이너 내부의 요소를 다시 원래 위치로 회전시킵니다.

1단계) 컨테이너 생성

만들다 div 블록많은 사람들과 하위 요소.

이 예에서는 스크롤 가능한 컨테이너의 너비가 300px이고 8개의 100x100px 요소가 있습니다. 크기는 임의적이며 임의로 설정할 수 있습니다.

항목 1
항목 2
항목 3
항목 4
항목 5
항목 6
항목 7
항목 8

< div class = "가로 스크롤 래퍼 사각형">

< div >항목 1< / div >

< div >항목 2< / div >

< div >항목 3< / div >

< div >항목 4< / div >

< div >항목 5< / div >

< div >항목 6< / div >

< div >항목 7< / div >

< div >항목 8< / div >

< / div >

컨테이너의 높이는 너비가 되고 그 반대도 마찬가지입니다. 아래에서 컨테이너의 "너비"는 300px입니다.

가로 스크롤 래퍼(너비: 100px; 높이: 300px; 오버플로-y: 자동; 오버플로-x: 숨김; )

너비: 100px;

높이: 300px;

오버플로 - y: 자동;

오버플로 - x: 숨김;

그리고 하위 요소:

가로 스크롤 래퍼 > div(너비: 100px; 높이: 100px; )

가로 - 스크롤 - 래퍼 > div(

너비: 100px;

높이: 100px;

2단계) 용기를 회전시키세요

이제 컨테이너를 -90도 회전해야 합니다. CSS 도움말변환 속성 수평 스크롤러가 있습니다.

수평 스크롤 래퍼( ... 변환: 회전(-90deg); 변환 원점: 오른쪽 상단; }

가로 - 스크롤 - 래퍼(

. . .

변환: 회전(-90deg);

작은 문제가 하나 있습니다. 하위 요소가 컨테이너와 함께 회전했습니다.

3단계) ​​하위 요소를 원래 위치로 되돌립니다.

그렇다면 요소를 원래 위치로 되돌리는 방법은 무엇입니까? CSS 변환 속성을 사용하여 다시 되돌립니다.

가로 스크롤 래퍼 > div ( ... 변환: 회전(90deg); 변환 원점: 오른쪽 상단; )

가로 - 스크롤 - 래퍼 > div(

. . .

변환: 회전(90deg);

변환 - 원점 : 오른쪽 상단 ;

4단계) 고정 위치 지정

모든 것이 좋아 보이지만 몇 가지 문제가 있습니다.

컨테이너를 회전시키고 오른쪽 상단을 앵커로 설정했습니다. 왼쪽컨테이너의 너비로 이동했습니다. 상상하기 힘들다면 손가락을 오른쪽에 올려보세요 상단 모서리페이지를 넘겨보세요. 종료: 번역 속성을 사용하여 다시 되돌려야 합니다.

이미 더 좋습니다. 그러나 첫 번째 요소는 여전히 표시되지 않습니다. 하위 요소에서도 동일한 문제가 관찰되기 때문입니다. 이 문제는 첫 번째 하위 요소에 너비 값으로 상단 여백을 제공하거나 모든 요소를 ​​컨테이너처럼 변환하여 해결할 수 있습니다. 내가 찾은 가장 쉬운 방법은 하위 요소의 너비와 동일한 컨테이너에 상단 패딩을 추가하여 요소에 대한 버퍼 영역을 만드는 것입니다.

호환성

사용 가능한 장치의 호환성을 확인했습니다.

데스크탑

스크롤바 스타일은 현재 Webkit/Blink 브라우저에서만 작동하므로 Firefox 및 IE에서는 일반 회색 스크롤바가 표시됩니다. 이는 JS를 사용하여 수정하고 완전히 숨길 수 있지만 이는 다른 강의의 주제입니다.

마우스 휠을 사용한 스크롤은 데스크탑에서 잘 작동합니다. 하지만 내 노트북에는 이 문제에 대한 자체 의견이 있습니다. 터치 스크린과 터치 패드가 있는 장치에서 데모는 마치 div가 전혀 회전되지 않은 것처럼 작동합니다.

모바일 장치

Android가 컨테이너가 회전된 것을 인식하고 왼쪽과 오른쪽으로 스와이프하여 스크롤할 수 있다는 사실에 놀랐습니다.

반대로 iOS에서는 모든 것이 그렇게 순조롭지 않습니다. 브라우저는 컨테이너가 전혀 회전되지 않은 것처럼 동작합니다. 따라서 스크롤하려면 위아래로 스와이프해야 하는데, 이는 상당히 이상합니다. 오버플로: 숨겨도 문제가 해결되지 않습니다.

결론

Can I Use 웹사이트에 따르면 CSS 변환은 이제 93% 이상의 사용자가 지원합니다(작성 ​​당시, 2016년 11월). 여기에는 문제가 있어서는 안 됩니다.

프로덕션에서는 이 방법을 사용하지 않는 것이 좋습니다. 일부 장치에서 테스트했지만 전부는 아니고 철저하게 테스트하지는 않았습니다.

제일 큰 문제– 왼쪽이나 오른쪽으로 이동하려면 위아래로 스와이프해야 하는 터치 입력. 해결책은 설명과 함께 사이트에 메시지를 작성하는 것일 수 있지만, 그렇게 하면 사용자가 이를 읽도록 의존해야 합니다. 그리고 그때에도 그것은 모순이 될 것입니다 상식. 또 다른 해결책은 기기에서 JS를 사용하여 터치 입력을 캡처하는 것입니다. 하지만 모든 것을 JS로 작성하고 CSS 해킹을 완전히 포기하는 것이 더 좋습니다.

프로그래밍 언어 분류

컴퓨터 시대의 여명기에 기계어는 사람과 컴퓨터 사이의 유일한 의사소통 수단이었습니다. 프로그래밍 언어 제작자의 가장 큰 업적은 컴퓨터 자체가 이러한 언어를 기계 코드로 번역하는 역할을 할 수 있다는 것입니다.

기존 프로그래밍 언어는 절차적 언어와 비절차적 언어의 두 그룹으로 나눌 수 있습니다(그림 4.1 참조).

절차적(또는 알고리즘적) 프로그램은 문제를 해결하기 위한 지침 시스템입니다. 특정 작업. 컴퓨터의 역할은 이러한 지침을 기계적으로 구현하는 것으로 축소됩니다.

절차적 언어는 저급 언어와 저급 언어로 구분됩니다. 높은 레벨.

다양한 유형프로세서에는 서로 다른 명령어 세트가 있습니다. 프로그래밍 언어가 특정 유형의 프로세서에 초점을 맞추고 해당 기능을 고려하는 경우 이를 호출합니다. 프로그래밍 언어 낮은 수준.
이는 언어 연산자가 기계어에 가깝고 특정 프로세서 명령에 중점을 둔다는 것을 의미합니다.

쌀. 4.1. 일반적 분류프로그래밍 언어

저수준(기계 지향) 언어를 사용하면 일반적으로 16진수 형식의 기계어 코드에서 프로그램을 만들 수 있습니다. 작업하기가 어렵지만 자격을 갖춘 프로그래머의 도움으로 만들어진 프로그램이 차지합니다. 더 적은 공간메모리에 저장되어 더 빠르게 작업할 수 있습니다. 이러한 언어를 사용하면 개발이 더 쉬워집니다. 시스템 프로그램, 드라이버(컴퓨터 장치 제어용 프로그램), 기타 유형의 프로그램.

저수준(기계 지향) 언어는 어셈블러이는 숫자가 아닌 기호 표기법을 사용하여 각 기계어 명령어를 간단히 나타냅니다.
기억술.

저수준 언어는 개발자가 프로세서의 모든 기능에 액세스할 수 있기 때문에 매우 효율적이고 컴팩트한 프로그램을 만듭니다.

고급 프로그래밍 언어컴퓨터보다 사람에게 훨씬 더 가깝고 이해하기 쉽습니다. 특정 컴퓨터 아키텍처의 기능은 고려되지 않으므로 생성된 프로그램수준에서 원본 텍스트이 언어 번역기가 만들어진 다른 플랫폼으로 쉽게 이식할 수 있습니다. 명확하고 강력한 명령을 사용하면 고급 언어로 프로그램을 개발하는 것이 훨씬 쉽고, 프로그램을 만들 때 실수하는 경우도 훨씬 적습니다.

고급 알고리즘 언어의 가장 큰 장점은 인간의 인식에 최대한 편리한 형태로 문제 해결 프로그램을 설명하는 능력입니다. 그러나 각 컴퓨터 제품군에는 고유한 내부(기계) 언어가 있고 이 언어로 작성된 명령만 실행할 수 있으므로 번역을 위해 소스 프로그램~에 기계어특별한 번역 프로그램이 사용됩니다.

모든 번역가의 작업은 해석 또는 편집이라는 두 가지 원칙 중 하나를 기반으로 합니다.

해석이는 명령문별 번역 및 소스 프로그램의 번역된 명령문의 후속 실행을 의미합니다. 이와 관련하여 통역 방법에는 두 가지 단점이 있습니다. 첫째, 원본 프로그램이 실행되는 전체 과정 동안 통역 프로그램이 컴퓨터 메모리에 있어야 합니다. 즉, 일정량의 메모리를 점유해야 합니다. 둘째, 프로그램에서 이 명령을 실행해야 하는 만큼 동일한 연산자를 번역하는 과정이 반복되어 프로그램 성능이 급격히 저하됩니다.

에도 불구하고 표시된 단점, 번역가-통역사소스 프로그램을 개발하고 디버깅하는 데 편리하기 때문에 널리 보급되었습니다.

~에 편집번역과 실행 과정은 시간적으로 분리됩니다. 먼저 소스 프로그램이 기계어로 완전히 번역됩니다. 랜덤 액세스 메모리불필요해짐) 번역된 프로그램을 여러번 실행할 수 있습니다. 결과적으로 동일한 프로그램에 대해 컴파일 방법을 사용한 번역은 더 많은 것을 제공합니다. 고성능 컴퓨팅 시스템필요한 RAM을 줄일 때.

동일한 언어의 인터프리터와 비교하여 컴파일러 개발의 복잡성은 프로그램 컴파일에 분석, 즉 입력의 언어 구성 구성 규칙에 따라 소스 프로그램의 정확성 결정이라는 두 가지 작업이 포함된다는 사실로 설명됩니다. 언어 및 합성 - 기계 코드로 동등한 프로그램을 생성합니다. 편집 방식을 사용하여 방송하려면 방송 프로그램을 반복해서 '시청'해야 합니다. 번역기-컴파일러다중 패스입니다. 첫 번째 패스에서는 개별 연산자의 언어 구성 구문의 정확성을 서로 독립적으로 확인하고, 후속 패스에서는 연산자 간의 구문 관계의 정확성 등을 확인합니다.

컴파일 방법을 사용하여 번역한 결과 얻은 프로그램을 호출합니다. 객체 모듈, 이는 기계 코드의 동등한 프로그램이지만 특정 RAM 주소에 "연결"되지는 않습니다. 따라서 실행 전에 개체 모듈을 처리해야 합니다. 특별 프로그램운영 체제(링크 편집기 – 링크)로 변환하여 모듈 로딩.

위에서 설명한 번역자-통역사 및 번역자-컴파일러와 함께 번역가도 실제로 사용됩니다. 통역사-컴파일러,번역의 두 가지 원칙의 장점을 결합한 것입니다. 프로그램을 개발하고 디버깅하는 단계에서 번역기는 통역사 모드로 작동하고, 디버깅 프로세스가 완료된 후 소스 프로그램은 컴파일 방법을 사용하여 객체 모듈로 다시 번역됩니다. ). 이를 통해 프로그램 작성 및 디버깅 프로세스를 크게 단순화하고 속도를 높일 수 있으며, 이후에 개체 모듈을 획득하여 프로그램의 보다 효율적인 실행을 보장할 수 있습니다.

고전적인 절차적 프로그래밍에는 프로그래머가 필요합니다. 상세 설명문제를 해결하는 방법, 즉 알고리즘의 공식화와 그 특별입장. 이 경우 결과의 예상 속성은 일반적으로 표시되지 않습니다. 이들 그룹의 언어의 기본 개념은 연산자와 데이터이다.
~에 절차적 접근운영자는 그룹 - 절차로 결합됩니다. 전체적으로 구조화된 프로그래밍은 이 방향을 벗어나지 않으며 단지 몇 가지 유용한 기술만 추가로 포착합니다.
프로그래밍 기술.

프로그래밍에서 근본적으로 다른 방향은 비절차적 프로그래밍의 방법론(때때로 "패러다임"이라고도 함)과 관련되어 있습니다. 여기에는 객체 지향 프로그래밍과 선언적 프로그래밍이 포함됩니다. 객체지향 언어는 많은 독립된 객체의 형태로 환경을 만듭니다. 각 객체는 비슷하게 동작합니다. 별도의 컴퓨터, 기능의 내부 메커니즘을 조사하지 않고도 "블랙 박스"로 문제를 해결하는 데 사용할 수 있습니다. 언어에서 객체 프로그래밍전문가들 사이에서 인기가 높은 Delphi 및 Delphi와 같은 광범위한 프로그래머 환경에서는 주로 C++라고 불러야 합니다. 비주얼 베이직.



선언적 언어를 사용할 때 프로그래머는 소스를 지정합니다. 정보구조, 이들 사이의 관계 및 결과가 가져야 하는 속성. 동시에 프로그래머는 이를 얻기 위한 절차(“알고리즘”)를 구축하지 않습니다. 적어도, 이상적으로). 이러한 언어에는 "연산자"( "명령")라는 개념이 없습니다. 선언적 언어는 논리적(일반적인 대표자는 Prolog)과 기능적(Lisp)의 두 가지 계열로 나눌 수 있습니다.

가장 유명한 프로그래밍 언어를 특성화해 보겠습니다.

1.포트란(FORMula TRANslating 시스템 - 공식 번역 시스템); 수학적 방향 문제를 해결하는 데 여전히 적극적으로 사용되는 가장 오래된 언어입니다. ~이다 고전 언어수학 및 공학 문제의 컴퓨터 프로그래밍

2.기초적인(초보자용 다목적 기호 명령 코드 - 초보자를 위한 보편적인 기호 명령 코드) 많은 단점과 풍부함에도 불구하고 나쁘다. 호환 버전– 사용자 수 측면에서 가장 인기가 있습니다. 간단한 프로그램을 작성할 때 널리 사용됩니다.

3.알골(알고리즘 언어 - 알고리즘 언어); 이론상으로는 큰 역할을 했지만 실용적인 프로그래밍지금은 거의 사용되지 않습니다.

4.PL/1(PL/1 프로그래밍 언어 - 최초의 프로그래밍 언어); 다목적 언어; 지금은 거의 사용되지 않습니다.

5.파스칼(파스칼 - 과학자 Blaise Pascal의 이름을 따서 명명됨); 프로그래밍을 배울 때나 전문가들 사이에서 매우 인기가 있습니다. 70년대 초 스위스 과학자 Niklaus Wirth가 창안했습니다. 파스칼 언어는 원래 교육용 언어로 개발되었으며 실제로 현재는 학교와 대학에서 프로그래밍을 가르치는 주요 언어 중 하나입니다. 하지만 전체적으로 그 품질이 너무 높아서 기꺼이 사용하고 싶은 것으로 나타났습니다. 전문 프로그래머. 재정적 측면을 포함하여 그다지 인상적인 성공은 터보 파스칼 시스템을 개발한 프랑스인 Philip Kahn에 의해 달성되었습니다. 그의 아이디어의 핵심은 프로그램 처리의 연속적인 단계(컴파일, 링크 편집, 디버깅 및 오류 진단)를 결합하는 것이었습니다. 단일 인터페이스. 터보 파스칼 버전은 거의 모든 것을 채웠습니다. 교육 기관, 프로그래밍 센터 및 민간 기업. Pascal 언어(Modula, Ada, Delphi)를 기반으로 더욱 강력한 여러 언어가 만들어졌습니다.

6.코볼(공통 비즈니스 지향 언어 - 일반 비즈니스 지향 언어) 거의 사용이 중단되었습니다. 관리 분야의 대량 데이터 처리를 위한 주요 언어로 고안되었습니다.
그리고 사업.

7.ADA;는 1975년 이후 미 국방부의 보편적 언어 대회에서 우승한 언어(1979년 5월)입니다. 개발자는 Jean Ikhbia가 이끄는 과학자 그룹입니다. 우승한 언어는 Augusta Ada Lovelace를 기리기 위해 ADA로 명명되었습니다. ADA 언어는 ADA 언어의 직계 후손입니다.
파스칼. 이 언어는 대규모의 생성 및 장기(수년) 유지 관리를 위해 만들어졌습니다. 소프트웨어 시스템, 간단한 언어로는 달성하기 어렵거나 불가능한 병렬 처리, 실시간 프로세스 제어 등을 허용합니다.

8.(C – "si"); 시스템 생성에 널리 사용됨 소프트웨어. 큰 흔적을 남겼습니다 현대 프로그래밍(첫 번째 버전 - 1972)은 소프트웨어 시스템(운영 체제 포함) 개발자들 사이에서 매우 인기가 있습니다. C는 고급 언어와 기계 지향 언어의 기능을 결합하여 프로그래머가 BASIC, Pascal과 같은 언어에서 제공하지 않는 모든 기계 리소스에 액세스할 수 있도록 합니다.

9.C++(C++); 1980년 Bjarne Stroustrup이 만든 C 언어의 객체 지향 확장입니다. 프로그래머 생산성을 획기적으로 향상시킨 많은 새로운 강력한 기능이 C 언어에서 물려받은 특정 하위 수준 특성에 추가되었습니다.

10.델파이(델파이); 객체 지향 "시각적" 프로그래밍 언어; 현재 매우 인기가 있습니다. Borland 전문가들이 Pascal 언어를 기반으로 제작했습니다. 델파이 언어 C 및 C++ 언어의 성능과 유연성을 갖춘 는 데이터베이스와의 상호 작용을 제공하고 기업 네트워크 및 인터넷 내에서 다양한 유형의 작업을 지원하는 애플리케이션을 개발할 때 인터페이스의 편리성과 단순성 측면에서 이를 능가합니다.

11.자바(자바); 플랫폼 독립적인 객체 지향 프로그래밍 언어로, 생성에 매우 효과적입니다. 대화형 웹 페이지. 이 언어는 90년대 초반 Sun에서 SI++를 기반으로 만들어졌습니다. 이는 모든 하위 수준 기능을 제거하여 C++ 기반 응용 프로그램의 개발을 단순화하도록 설계되었습니다.

12.리스프(리스프) – 기능적 언어프로그램 작성. 리스트 형태의 데이터 구조에 중점을 두고 효율적인 처리가 가능합니다. 대용량텍스트 정보.

13.프롤로그(논리 프로그래밍 – 논리 프로그래밍). 언어의 주요 목적은 개발이다 지능형 프로그램그리고 시스템. 프롤로그는 사실과 규칙(시스템의 요소 중 하나)을 기반으로 지식 기반 작업을 위해 특별히 만들어진 프로그래밍 언어입니다. 인공지능). 언어는 역추적 메커니즘을 구현하여 특정 추론이나 결론이 사실이라고 가정하고 이러한 가정을 사실과 추론 규칙이 포함된 지식 기반과 비교하여 확인하는 역추적 체인을 수행합니다.
가정이 확인되지 않으면 반환이 이루어지고 새로운 가정이 이루어집니다. 언어는 다음을 기반으로합니다. 수학적 모델술어 계산 이론.

인터넷용 프로그래밍 언어:

1. HTML.문서 준비를 위한 잘 알려진 언어입니다. 매우 간단하며 다음과 같은 내용이 포함되어 있습니다. 기본 명령텍스트 서식 지정, 그림 추가, 글꼴 및 색상 설정, 링크 및 표 구성.

2. PERL.수단으로 의도된 것이었습니다 효율적인 처리크기가 큰 텍스트 파일, 텍스트 보고서 생성 및 작업 관리.
Perl은 C와 같은 언어보다 훨씬 더 강력합니다. 여기에는 문자열, 배열 작업, 프로세서 관리 및 시스템 정보 작업에 자주 사용되는 많은 기능이 포함되어 있습니다.

3. Tcl/Tk.이 언어는 일상적인 프로세스 자동화에 중점을 두고 있으며 강력한 명령으로 구성되어 있습니다. 이는 시스템 독립적이며 여전히 그래픽 인터페이스를 사용하여 프로그램을 생성할 수 있습니다.

4. VRML.인터넷상의 가상 3차원 인터페이스를 구성하기 위해 만들어졌습니다. 설명할 수 있게 해줍니다. 텍스트 형식다양한 3D 장면, 조명 및 그림자, 텍스처.

프로그래밍 언어의 선택은 목적, 소스 프로그램 작성의 용이성, 결과 목적 프로그램의 효율성 등 여러 요소에 따라 달라집니다. 컴퓨터가 해결하는 다양한 문제가 프로그래밍 언어의 다양성을 결정합니다.

통제 질문

1. 프로그래밍 시스템이란 무엇이며 어떤 클래스에 속합니까?

2. 프로그래밍 시스템에는 무엇이 포함됩니까?

3. 최초의 프로그램은 어떤 프로그래밍 언어로 만들어졌습니까?

4. 어떤 언어로 나누어져 있나요? 절차적 언어?

5. 저수준 언어를 설명하십시오.

6. 저수준 언어는 어떤 언어인가요?

7. 저급 언어의 장점.

8. 고급 언어를 설명하세요.

9. 고급언어의 장점

10. 고급 언어의 예를 들어보세요.

11. 번역가의 목적은 무엇입니까?

12. 컴파일러는 인터프리터와 어떻게 다릅니까?

13. 통역의 단점(번역자의 일종으로서).

14. 프로그램을 컴파일하는 과정은 어떻게 되나요?

15. 컴파일 중에는 어떤 작업이 수행됩니까?

16. 로드 모듈은 객체 모듈과 어떻게 다릅니까?

17. 절차적 프로그래밍은 비절차적 프로그래밍과 어떻게 다릅니까?

18. 비절차적 프로그래밍 유형은 무엇입니까?
프로그램 작성?

19. 선언적 언어의 특징.

20. 프로그래밍 언어인 Fortran, BASIC, Pascal, Cobol을 간략하게 설명하십시오.

21. 프로그래밍 언어인 Ada, C, C++, Delphi, Java를 간략하게 설명하십시오.

22. 객체 지향 언어의 예를 들어보세요.

23. Lisp 언어는 어떤 종류의 언어에 속합니까?

24. Prolog는 어떤 종류의 언어에 속합니까?

정말 새로운 프로그래밍 언어가 필요한가요? 물론 현재로서는 충분합니다. 명령형, 함수형, 객체지향, 동적, 컴파일, 해석 및 스크립팅 언어현재 사용 가능한 모든 가능성을 이해할 수 있는 개발자는 없습니다.

그러나 새로운 언어의 출현은 상당히 흔한 일입니다. 일부는 학생이나 애호가가 개별 프로젝트로 만들고 다른 일부는 제품입니다. 대형 제조업체소프트웨어 . 중소기업도 이 과정에 참여해 업계 요구에 맞는 언어를 만들고 있다. 그렇다면 사람들은 왜 계속해서 바퀴를 재발명하는 걸까요?

사실 현재 널리 사용되는 언어의 강력함과 다양성에도 불구하고 이상적으로 보편적인 구문은 하나도 없습니다. 게다가 프로그래밍 자체도 끊임없이 진화하고 있습니다. 멀티 코어 프로세서, 클라우드 프로그래밍, 이동성 및 분산 아키텍처의 등장은 개발자에게 새로운 과제를 안겨주었습니다. 기존 언어, 특히 가장 인기 있는 언어에 최신 기능, 패러다임 및 패턴에 대한 지원을 추가하는 것은 부담스러울 수 있습니다. 때때로 최고의 솔루션처음부터 시작하는 것입니다.

따라서 여기에는 새로운 각도에서 소프트웨어 개발 기술에 접근하는 10가지 최첨단 프로그래밍 언어가 있습니다. 특정 문제또는 오늘날 가장 인기 있는 언어가 부족합니다. 그 중 일부는 이미 완료된 프로젝트인 반면, 일부는 개발 초기 단계에 불과합니다. 그들 중 일부는 결코 인기를 얻지 못할 가능성이 높지만, 적어도 새로운 언어가 만들어지기 전까지는 프로그래밍을 완전히 변화시키는 혁명적인 성과가 될 수 있습니다.

JavaScript를 추가하면 좋습니다 기본 요소웹페이지의 상호작용성이지만 웹 애플리케이션 코드가 수천 줄로 구성된 경우 약점이 언어가 눈에 띄게 됩니다. 이것이 바로 Google이 웹 프로그래밍을 위한 새로운 "기본" 언어가 될 것이라고 믿는 언어인 Dart를 만든 이유입니다.

JavaScript와 마찬가지로 Dart는 구문과 키워드, C 언어에서 사용되는 것과 유사하지만 한 가지 중요한 차이점은 JavaScript는 프로토타입 기반이지만 Dart의 객체는 C++ 또는 Java에서와 마찬가지로 클래스와 인터페이스를 사용하여 정의된다는 것입니다. Dart를 사용하면 프로그래머는 다음을 사용하여 추가로 변수를 설정할 수도 있습니다. 정적 유형. Dart를 JavaScript만큼 친숙하고 역동적이며 유연한 언어로 만드는 동시에 개발자가 빠르고 실행하기 쉽고 실수를 찾기 어려운 코드를 작성할 수 있도록 하는 것이 아이디어입니다.

다트는 오늘날 널리 사용되지 않습니다. 클라이언트나 서버(Node.js)에서 실행되도록 설계되었지만 유일한 방법클라이언트 버전의 Dart 코드를 실행하려면 해당 코드를 JavaScript로 크로스 컴파일해야 합니다. 그러나 이후에도 모든 브라우저에서 실행되지는 않습니다. 하지만 Dart가 출시된 이후 무료 라이센스 BSD를 입력한 다음 이에 동의하는 판매자 구글 약관, 해당 제품에서 이 언어를 무료로 사용할 수 있습니다. Google이 해야 할 일은 업계 전체를 설득하는 것뿐입니다.

F# 코드는 OCaml 코드와 다소 유사하지만 고유한 흥미로운 구문이 있습니다. 예를 들어 과학적 계산을 용이하게 하기 위해 숫자 유형 F#의 데이터는 측정 단위가 될 수 있습니다. F#에는 비동기 I/O, CPU 병렬화 및 GPU 출력을 용이하게 하는 구문도 포함되어 있습니다.

Microsoft Research에서 오랜 기간을 거쳐 F#은 이제 Visual Studio 2010과 함께 제공됩니다. 더 좋은 점은 기업에서는 일반적이지 않지만 Microsoft가 Apache 오픈 라이선스에 따라 사용할 수 있는 F# 컴파일러와 루트 라이브러리를 만들었습니다. 무료로 시작하고 다음 환경에서도 사용할 수 있습니다. 맥 시스템및 Linux(Mono 런타임 사용).

당연히 이런 종류의 통합 시스템에서는 결국 마법 같은 일이 일어나야 합니다. Opa 런타임은 독립형 대안으로 대체할 수 없는 자체 웹 서버와 데이터베이스 관리 시스템을 통합합니다. 그러나 수십 줄의 코드만으로 현대적인 데이터 기반 웹 애플리케이션을 개발할 수 있는 능력을 고려하면 이는 그리 큰 문제가 아닐 수도 있습니다. Opa는 무료이며 현재 64비트 Linux 및 Mac OS X 플랫폼에서 사용할 수 있으며 다른 포트도 개발 중입니다.

Fantom은 Academic Free License 3.0에 따라 무료로 배포되며 Windows 및 Unix 계열 플랫폼(Mac OS X 포함)에서 사용할 수 있습니다.

탐구된 프로그래밍 언어 #7: 짐부

혼합된 특성으로 인해 Zimbu 구문은 독특하고 구체적이지만 동시에 큰 금액기능. C에서 사용되는 것과 유사한 표현식과 연산자를 사용하지만 고유한 키워드, 데이터 유형 및 블록 구조를 사용합니다. 메모리 관리, 스레드 및 파이프라인을 지원합니다.

유일한 문제는 이식성입니다. Zimbu는 컴파일된 언어이지만 컴파일러는 ANSI C 코드를 생성합니다. 바이너리 파일 C 컴파일러가 내장된 플랫폼에서만 생성할 수 있습니다.

불행히도 Zimbu 프로젝트는 개발 중입니다. 컴파일러와 몇 가지 샘플 프로그램을 직접 만들 수 있지만 실제 Zimbu 코드가 모두 제대로 컴파일되고 실행되는 것은 아닙니다. 선언된 기능 중 일부가 아직 개발되지 않았으며 이미 제시된 기능 중 일부는 올바르게 작동하지 않습니다. 언어 사양은 시간이 지남에 따라 변경되어 필요에 따라 키워드, 유형 및 구문을 추가할 수도 있습니다. 결과적으로 문서도 아직 불완전합니다. 그러나 시도해 보고 싶다면 Apache 라이센스에 따라 예비 유틸리티를 이미 사용할 수 있습니다.

연구된 프로그래밍 언어 #8: X10

병렬 처리는 한때 소프트웨어 개발의 전문 틈새 시장이었지만 멀티 코어 프로세서와 분산 컴퓨팅의 등장으로 병렬 처리가 인기를 얻었습니다. 불행하게도 현재의 프로그래밍 언어는 이러한 추세를 따라잡지 못하고 있습니다. 이것이 바로 IBM Research가 개발자 생산성을 "10배" 향상시키는 것을 목표로 하는 현대 병렬 아키텍처용으로 특별히 설계된 언어인 X10을 개발하는 이유입니다.

PGAS(Partitioned Global Address Space) 프로그래밍 모델 덕분에 X10의 동시성이 가능합니다. 코드와 데이터는 블록에 할당되고 다양한 "공간"에 분산되므로 단일 스레드 프로토타입(1개의 공간)에서 하나 이상의 멀티 코어 프로세서(여러 공간)에서 실행되는 멀티 스레드 프로토타입으로 프로그램 확장이 용이해집니다. 고성능 클러스터.

X10 코드는 Java와 가장 유사합니다. 기본적으로 X10 런타임은 내장 실행 파일과 JVM용 클래스 파일로 모두 사용할 수 있습니다. X10 컴파일러는 C++ 또는 Java로 소스 코드를 생성할 수 있습니다. 향후에는 Java와의 직접적인 호환성을 개발할 계획이 있습니다.

그 동안 언어는 이미 상당히 발전했지만 발전하고 있습니다. 컴파일러와 런타임은 Linux, Mac OS X, Windows를 포함한 다양한 플랫폼에서 사용할 수 있습니다. 처럼 추가 유틸리티 Eclipse 기반 대화형 개발 환경(IDE)과 디버거이며 둘 다 Eclipse Public License에 따라 라이센스가 부여됩니다.

연구한 프로그래밍 언어 #9: haXe

이식 가능한 코드를 작성하는 데는 다양한 언어가 사용될 수 있습니다. C 컴파일러는 거의 모든 CPU 아키텍처에서 사용할 수 있으며 Java 바이트코드는 JVM이 있는 모든 곳에서 실행됩니다. 그러나 haXe(16진수로 발음)는 단순한 휴대성 그 이상입니다. 다양한 언어에서 사용할 수 있는 멀티 플랫폼 언어입니다. 운영 환경, 내장부터 시작하여

특정 프로그래밍 언어의 인기를 측정하는 방법에는 여러 가지가 있습니다. 하지만 우리는 전문가에 대한 수요를 분석하는 것이 가장 정확하다고 믿습니다. 이는 개발자에게 경력 전망을 개선하는 데 필요한 기술을 명확하게 보여줍니다.

우리는 인디드닷컴(Indeed.com)에 게시된 채용 정보를 분석하여 2018년에 가장 수요가 많은 프로그래밍 언어 7개를 식별했습니다. Swift 및 Ruby와 같은 일부 언어는 고용주 사이에서 수요가 낮기 때문에 상위 7위에 들지 못했습니다.

2018년 Java에 대한 수요는 2017년에 비해 약 6,000개 공석이 감소했습니다. 하지만 이 프로그래밍 언어는 여전히 인기가 있습니다. Java는 20년 넘게 전 세계 수백만 명의 개발자와 수십억 개의 장치에서 사용되었습니다. 다음을 통해 모든 하드웨어 및 운영 체제에서 실행될 수 있습니다. 가상 기기자바.

모두 안드로이드 애플리케이션 Java를 기반으로 합니다. Fortune 500대 기업 중 90%가 Java를 서버측 프로그래밍 언어로 사용합니다.

2.파이썬

Python의 인기는 약 5,000개의 채용 공고만큼 증가했습니다. 이것은 프로그래밍 언어이다 범용, 웹 개발에 사용됩니다. 또한 과학 컴퓨팅 및 데이터 마이닝에도 널리 사용됩니다. 기계 학습 개발자에 대한 지속적인 수요로 인해 Python에 대한 수요가 늘어나고 있습니다.

3. 자바스크립트

JavaScript는 2017년과 마찬가지로 오늘날에도 인기가 높습니다. 이 프로그래밍 언어는 개발자의 80% 이상과 모든 사이트의 95%에서 웹 페이지에 동적 요소를 구축하는 데 사용됩니다. React 및 AngularJS와 같은 다수의 프런트엔드 JavaScript 프레임워크는 엄청난 잠재력을 가지고 있습니다. IoT 및 모바일 장치의 인기가 점점 높아지고 있으므로 조만간 JavaScript 프로그래머에 대한 수요가 감소할 것 같지 않습니다.

4. C++

C++에 대한 수요는 2017년에 비해 거의 변하지 않았습니다. 이 프로그래밍 언어는 시스템/응용 프로그램 소프트웨어, 게임 개발, 드라이버, 클라이언트-서버 응용 프로그램을 만드는 데 사용됩니다. 많은 프로그래머들은 C++가 Python이나 JavaScript와 같은 프로그래밍 언어보다 더 복잡하다고 생각합니다. 그러나 대기업의 많은 레거시 시스템에서는 여전히 사용되고 있습니다.

5.C#

C#("C 샤프"로 발음)의 인기는 올해 약간 감소했습니다. C#은 Microsoft.NET 플랫폼에서의 개발을 위해 설계된 개체 지향 프로그래밍 언어입니다.

C++와 마찬가지로 C#도 비디오 게임 개발에 사용되므로 초보 프로그래머는 두 언어를 동시에 마스터해야 합니다.

6.PHP

이것 서버 언어프로그래밍은 우리 순위에서 6위로 상승했습니다(작년 대비). 대부분의 개발자는 HTML이 지원하지 않는 기능을 구현하기 위해 PHP를 사용합니다. 또한 MySQL 데이터베이스와 상호 작용할 수도 있습니다.

7. 펄

Perl에 대한 수요는 약 3,000개의 공석으로 감소했으며 순위에서는 7위를 유지했습니다. Perl은 시스템 및 네트워크 관리자에게 계속해서 인기를 얻고 있습니다.

미래에 대한 살펴보기

아직 우리 평가에 포함되지 않은 프로그래밍 언어입니다. 하지만 2018년에는 더욱 인기를 끌었습니다. 앞으로도 그들을 주목해주세요!

  • Swift: Apple이 2014년에 출시한 iOS 및 macOS용 프로그래밍 언어로 순위에서 14위를 차지했습니다. 이는 많은 개발자 작업에서 특정 언어를 지정하지 않고 요구 사항을 "iOS"로 명시하기 때문입니다. Swift는 꾸준히 인기를 얻고 있습니다.
  • R: 우리 순위에서 11위를 차지했습니다. 하지만 우리는 이 프로그래밍 언어가 몇 년 안에 인기를 끌 것으로 예상합니다. 미국은 물론 해외에서도 인기를 얻고 있습니다. R 개발자에 대한 수요 증가는 점점 더 다음과 같이 설명됩니다. 적극적으로 사용데이터 분석의 언어.
  • Rust: Rust가 우리 순위에서 낮은 순위를 차지하고 있음에도 불구하고, 구글에 따르면트렌드는 꾸준히 발전하고 있습니다.

알아야 할 기타 기술

아래 나열된 기술은 공식 프로그래밍 언어가 아닙니다. 그러나 고용주가 개발자에게 요구하는 요구 사항 목록에는 포함되어 있습니다.

  • SQL: 데이터베이스에 정보를 저장하고 처리하기 위해 설계된 표준 쿼리 언어입니다. SQL 지식은 고용주들 사이에서 수요가 높습니다. 그는 3만 개 이상의 공석에서 언급되었습니다.
  • .그물: 마이크로소프트 플랫폼위한 프로그램을 개발하기 위해 데스크톱 컴퓨터, 모바일 장치그리고 웹 애플리케이션. C#, Visual Basic, F# 등의 프로그래밍 언어에서 사용됩니다. 그리고 이 기술의 크로스 플랫폼 구현은 .NET을 iOS, Linux 및 Android용으로 확장합니다.
  • 노드: 오픈 소스 환경 소스 코드, 이를 통해 다음을 실행할 수 있습니다. 자바스크립트 코드서버 측에서. 이는 전체 웹 애플리케이션에 하나의 프로그래밍 언어를 사용할 수 있는 기능을 제공합니다. Node.js를 배우는 데 시간을 할애하는 것이 좋습니다.
  • MEAN: MEAN 스택(MongoDB, ExpressJS, AngularJS 및 Node.js)은 순위에서 18위를 차지했습니다. 스택을 사용하면 JavaScript로 생성할 수 있습니다. 본격적인 응용 프로그램. MEAN을 연구하는 것은 가장 중요한 것 중 하나에 대한 개발의 기초를 제공할 것입니다. 인기있는 언어세상에 프로그래밍.

기사 번역 "2018년 가장 수요가 많은 프로그래밍 언어 7개"친절한 프로젝트 팀이 준비했습니다.

좋다 나쁘다



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: