프로그래밍 언어의 비교 분석. 현대 언어의 비교 특성, 목적 및 기능 ​​통신 고급 알고리즘 언어의 비교 분석

지식 기반에서 좋은 작업을 보내는 것은 간단합니다. 아래 양식을 사용하세요

연구와 업무에 지식 기반을 사용하는 학생, 대학원생, 젊은 과학자들은 매우 감사할 것입니다.

http://www.allbest.ru/에서 호스팅

고등 특수 교육부러시아 연방

연방 교육청

오기에

수필

분야: 정보학

주제: "프로그래밍 언어의 비교 분석"

소개

프로세서 기계어 코드

알고리즘 및 프로그램

프로그래밍 언어란 무엇인가

컴파일러와 인터프리터

프로그래밍 언어 수준

프로그래밍 언어의 세대

프로그래밍 언어 개요 높은 레벨

데이터베이스 프로그래밍 언어

웹용 프로그래밍 언어

모델링 언어

기타 프로그래밍 언어

결론

서지

소개

최초의 컴퓨터의 출현은 과학으로서의 프로그래밍을 낳았습니다. 정보 처리에 대한 최초의 수학적 이론, 프로그램의 정확성 증명 수단, 코드 최적화, 효율적인 컴파일러 생성, 형식 테스트 등이 개발되었지만 3세대 범용 프로그래밍 언어의 출현으로 이러한 측면은 관련성이 감소했습니다. 연구는 주로 소스 텍스트의 자동 생성과 컴파일러의 효율성 향상에 대해 진행되었습니다. 프로그래밍은 예술이 되었습니다. 특수 교육을 받지 않은 수백만 명의 사람들이 컴퓨터를 사용하여 자신의 응용 문제를 해결할 수 있는 기회를 얻었습니다. 따라서 제대로 작동하는 프로그램을 만들 수 있어야 합니다. 프로그래밍의 기술은 모든 것이 개인의 기술에 의해 결정되는 소규모 회사에서 혼자 또는 소규모로 프로그램을 만드는 전문 개발자와 아마추어에게 오늘날까지 남아 있습니다.

프로세서 기계어 코드

컴퓨터 프로세서는 큰 집적 회로입니다. 모든 명령과 데이터를 전기 신호 형태로 수신합니다. 사실, 프로세서는 상당히 단순한 전자 요소인 트랜지스터의 거대한 집합체로 볼 수 있습니다. 트랜지스터에는 3개의 출력이 있습니다. 트랜지스터에 전류를 생성하는 데 필요한 전압은 양 극단에 인가되고 중간 단자의 전압에는 제어에 사용할 수 있는 전압이 공급됩니다. 내부 저항트랜지스터는 단자에서 전류와 전압을 모두 제어하는 ​​것을 의미합니다.

전자 제품에서 트랜지스터는 세 가지 용도로 사용됩니다. 증폭기 생성, 전자 회로, 자체 발진 특성을 갖는 전자 스위치. 후자의 방법은 디지털 컴퓨팅에서 사용됩니다. 컴퓨터 프로세서에서 트랜지스터는 플립플롭과 게이트라고 하는 미세 요소로 그룹화됩니다. 트리거는 두 가지 안정적인 상태(개방 - 닫힘)를 가지며 전기 신호에 의해 한 상태에서 다른 상태로 전환됩니다. 이러한 정상 상태는 0 또는 1의 수학적 개념에 해당합니다. 게이트는 조금 더 복잡합니다. 게이트는 여러 입력을 가질 수 있으며(출력 전압은 입력의 전압 조합에 따라 다름) 가장 간단한 산술 및 논리 연산에 사용됩니다.

버스를 통해 프로세서에 들어오는 명령은 실제로 전기 신호이지만 0과 1의 집합, 즉 숫자로 나타낼 수도 있습니다. 다른 명령은 다른 숫자에 해당합니다. 따라서 실제로 프로세서가 작동하는 프로그램은 기계어라고 하는 일련의 숫자입니다.

알고리즘 및 프로그램

특정 알고리즘에 따라 컴퓨터를 제어해야 합니다. 알고리즘은 유한한(시간에 따른) 일련의 동작 형태로 문제를 해결하는 방법에 대해 정확하게 정의된 설명입니다. 이러한 설명을 형식이라고도 합니다. 프로그래밍 언어는 컴퓨터가 이해할 수 있는 형태로 알고리즘을 표현하는 데 사용됩니다. 첫째, 행동 알고리즘은 항상 개발된 다음 이러한 언어 중 하나로 작성됩니다. 결과적으로 프로그래밍 언어의 알고리즘에 대한 완전하고 완전하며 자세한 설명인 프로그램 텍스트를 얻습니다. 그런 다음 이 프로그램 텍스트는 기계어로 번역되거나 번역기라고 하는 특수 서비스 응용 프로그램에 의해 실행됩니다.

프로그래밍 언어란 무엇인가

스스로 기계어로 프로그램을 작성하는 것은 매우 어려우며, 이러한 복잡성은 프로그램의 크기가 증가하고 원하는 문제를 해결하는 복잡성이 증가함에 따라 급격히 증가합니다. 프로그램 크기가 수십 바이트를 초과하지 않고 수동 데이터 입출력 작업이 필요하지 않은 경우 조건부로 기계어 코드가 허용되는 것으로 간주할 수 있습니다.

따라서 오늘날 거의 모든 프로그램은 프로그래밍 언어를 사용하여 만들어집니다. 이론적으로 프로그램은 일반 인간(자연) 언어를 사용하여 작성할 수 있습니다. 이를 메타 언어 프로그래밍(일반적으로 알고리즘을 컴파일하는 단계에서 유사한 접근 방식이 사용됨)이라고 하지만 이러한 프로그램을 기계로 자동 번역하는 것은 아직 불가능합니다. 자연어의 높은 모호성으로 인한 코드.

프로그래밍 언어는 인공 언어입니다. 그것들은 번역가에게 그 의미가 명확하고 매우 제한된 수의 "단어"에서 자연적인 것과 다릅니다. 엄격한 규칙명령 레코드(연산자). 이러한 요구 사항의 전체는 프로그래밍 언어의 구문을 형성하고 각 명령 및 기타 언어 구성의 의미는 의미 체계를 형성합니다. 프로그램 항목의 형식을 어기는 것은 번역기가 연산자의 목적을 이해하지 못하고 구문 오류에 대한 메시지를 발행한다는 사실로 이어지며, 올바르게 작성되었지만 알고리즘에 해당하지 않는 언어 명령의 사용은 의미론적 오류(논리적 오류 또는 런타임 오류라고도 함).

프로그램에서 오류를 찾는 과정을 테스팅이라고 하고, 오류를 제거하는 과정을 디버깅이라고 합니다.

컴파일러와 인터프리터

프로그래밍 언어 컴파일러 인터프리터

프로그래밍 언어의 도움으로 완성된 프로그램이 생성되지 않고 이전에 개발된 알고리즘을 설명하는 텍스트만 생성됩니다. 작동하는 프로그램을 얻으려면 이 텍스트를 기계 코드로 자동 번역(컴파일러 프로그램이 사용됨)한 다음 소스 텍스트와 별도로 사용하거나 프로그램 텍스트에 표시된 언어 명령을 즉시 실행해야 합니다(인터프리터 프로그램은 이것).

인터프리터는 프로그램 텍스트에서 다음 언어 명령문을 가져와서 구조를 분석한 다음 즉시 실행합니다(일반적으로 분석 후 명령문은 더 효율적인 추가 실행을 위해 중간 표현이나 기계 코드로 변환됩니다). 현재 문장이 성공적으로 실행된 후에야 인터프리터가 다음 문장으로 넘어갈 것입니다. 또한 프로그램에서 동일한 명령문이 반복적으로 실행되어야 하는 경우 인터프리터는 이를 처음 만난 것처럼 매번 실행합니다. 그 결과 많은 양의 반복 연산이 필요한 프로그램이 느리게 실행될 수 있습니다. 또한 이러한 프로그램을 다른 컴퓨터에서 실행하려면 인터프리터도 설치해야 합니다. 인터프리터가 없으면 프로그램 텍스트는 문자 집합일 뿐입니다.

다른 방법으로 인터프리터는 기본 명령이 기본 프로세서 명령이 아니라 프로그래밍 언어 연산자인 특정 가상 컴퓨터를 모델링한다고 말할 수 있습니다.

컴파일러는 프로그램의 전체 텍스트(소스 코드라고도 함)를 완전히 처리합니다. 그들은 그것을 위해 그것을 스캔합니다 구문 오류(때로는 여러 번), 특정 의미 분석을 수행한 다음 자동으로 기계어로 번역(번역)하여 기계어 코드를 생성합니다. 종종 최적화는 프로그램의 성능을 향상시키는 일련의 방법을 사용하여 수행됩니다(예: 불필요한 명령, 중간 계산 등을 제거하여 특정 프로세서에 대한 명령 사용). 그 결과, 작고 효율적이며 인터프리터 프로그램보다 수백 배 빠르게 실행되며 적절한 기계어 코드를 지원하는 프로세서가 있는 다른 컴퓨터로 이식될 수 있는 완성된 프로그램이 생성됩니다.

컴파일러의 주요 단점은 종종 사전에 알려지지 않거나 프로그램 작동 중에 동적으로 변경되는 복잡한 구조의 데이터 처리를 지향하는 프로그래밍 언어를 번역하는 번거로움입니다. 그런 다음 기계 코드에 많은 추가 검사를 삽입하고 리소스 가용성을 분석해야 합니다. 운영 체제, 동적으로 캡처 및 해제하고, 컴퓨터 메모리에서 복잡한 객체를 형성 및 처리하는데, 이는 하드 코딩된 기계 명령어 수준에서 구현하기 매우 어렵고 여러 작업에서 거의 불가능합니다.

반대로 인터프리터의 도움으로 언제든지 프로그램을 중지하고 메모리 내용을 검사하고 사용자와의 대화를 구성하고 임의로 복잡한 데이터 변환을 수행하는 동시에 지속적으로 상태를 모니터링 할 수 있습니다. 주변 소프트웨어 및 하드웨어 환경을 통해 높은 신뢰성을 달성합니다. 인터프리터는 각 문장을 실행할 때 운영 체제의 여러 특성을 확인하고 필요한 경우 발생하는 문제에 대해 개발자에게 최대한 자세히 알려줍니다. 또한 인터프리터는 언어의 모든 개별 문장의 작동 원리를 이해할 수 있도록 해주기 때문에 프로그래밍 학습 도구로 사용하기에 매우 편리합니다.

실제 프로그래밍 시스템에서는 컴파일과 해석의 기술이 혼합되어 있습니다. 디버깅 프로세스 동안 프로그램은 단계별로 실행될 수 있으며 결과 코드는 반드시 기계가 아닐 수도 있습니다. 다른 프로그래밍 언어로 작성된 소스 코드일 수도 있습니다(이렇게 하면 번역 프로세스가 크게 간소화되지만 컴파일러가 필요합니다. 대상 언어) 또는 중간 기계 독립적 코드 다양한 컴퓨터 아키텍처에서 인터프리터를 사용하여 실행되거나 해당 기계 코드로 컴파일되는 추상 프로세서입니다.

프로그래밍 언어 수준

다른 유형의 프로세서에는 다른 명령 세트가 있습니다. 프로그래밍 언어가 특정 유형의 프로세서에 초점을 맞추고 기능을 고려하는 경우 프로그래밍 언어라고 합니다. 낮은 수준. 이 경우 "낮음"은 "나쁨"을 의미하지 않습니다. 이는 언어 연산자가 기계어에 가깝고 특정 프로세서 명령에 집중한다는 것을 의미합니다.

가장 낮은 수준의 언어는 숫자가 아니라 니모닉이라는 기호 규칙을 사용하여 기계 코드의 각 명령을 단순히 나타내는 어셈블리 언어입니다. 하나의 기계 명령어를 하나의 어셈블리 명령어로 명확하게 변환하는 것을 음역이라고 합니다. 프로세서 모델마다 명령어 집합이 다르기 때문에 특정 컴퓨터 아키텍처에는 고유한 어셈블리 언어가 있으며 그 안에 작성된 프로그램은 이 환경에서만 사용할 수 있습니다.

저수준 언어의 도움으로 개발자가 프로세서의 모든 기능에 액세스할 수 있기 때문에 매우 효율적이고 컴팩트한 프로그램이 생성됩니다. 반면에, 이것은 컴퓨터 구조에 대한 아주 좋은 이해를 필요로 하고, 큰 응용 프로그램을 디버깅하기 어렵고, 결과 프로그램을 다른 유형의 프로세서가 있는 컴퓨터로 전송할 수 없습니다. 이러한 언어는 일반적으로 소형 시스템 응용 프로그램, 장치 드라이버, 비표준 장비가 있는 도킹 모듈을 작성하는 데 사용되며, 하드웨어 리소스에 직접 액세스할 수 있는 능력, 소형, 속도가 가장 중요한 요구 사항이 될 때입니다. 컴퓨터 그래픽과 같은 일부 영역에서 라이브러리는 계산 집약적인 이미지 처리 알고리즘을 효과적으로 구현하는 어셈블리 언어로 작성됩니다.

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

프로그래밍 언어의 세대

프로그래밍 언어는 일반적으로 5세대로 나뉩니다. 1세대에는 최초의 컴퓨터가 탄생한 50년대 초반에 만들어진 언어가 포함됩니다. "한 명령 - 한 줄"의 원칙에 따라 만들어진 최초의 어셈블리 언어였습니다.

2세대 프로그래밍 언어의 전성기는 50년대 후반에서 60년대 초반이었습니다. 그런 다음 변수 개념이 등장한 기호 어셈블러가 개발되었습니다. 최초의 본격적인 프로그래밍 언어가 되었습니다. 외관 덕분에 프로그램의 개발 속도와 신뢰성이 눈에 띄게 향상되었습니다.

3세대 프로그래밍 언어의 출현은 일반적으로 60년대에 기인합니다. 이때 보편적인 고급 언어가 탄생했으며 도움으로 모든 영역의 문제를 해결할 수 있습니다. 상대적 단순성, 특정 컴퓨터로부터의 독립성 및 강력한 구문 구조를 사용할 수 있는 능력과 같은 새로운 언어의 이러한 특성은 프로그래머의 생산성을 극적으로 증가시키는 것을 가능하게 했습니다. 대부분의 사용자가 이해할 수 있는 이러한 언어의 구조는 컴퓨터 이외의 분야에서 소규모 프로그램(일반적으로 엔지니어링 또는 경제적 성격)을 작성하는 전문가의 상당수를 끌어들였습니다. 이 세대의 대다수 언어가 오늘날 성공적으로 사용됩니다.

70년대 초반부터 현재까지 4세대 언어의 시대는 계속된다. 이 언어는 대규모 프로젝트를 구현하고 안정성과 생성 속도를 높이도록 설계되었습니다. 그들은 일반적으로 좁은 주제 영역의 특정 개념으로 작동하는 보편적인 언어가 아니라 도메인 특정 언어를 사용하여 좋은 결과를 얻을 수 있는 특수 응용 분야에 중점을 둡니다. 일반적으로 강력한 연산자가 이러한 언어에 내장되어 있어 한 줄로 이러한 기능을 설명할 수 있으며, 이를 위해서는 저세대 언어로 수천 줄의 소스 코드가 필요합니다.

5세대 언어의 탄생은 1990년대 중반에 일어났다. 그들은 또한 시스템을 포함합니다 자동 생성프로그래밍 지식 없이 시각적 개발 도구를 사용하는 응용 프로그램. 이러한 언어에 포함된 주요 아이디어는 결과 텍스트를 범용 프로그래밍 언어(그런 다음 컴파일해야 함)로 자동 생성하는 기능입니다. 명령어는 프로그래밍에 익숙하지 않은 사람에게 가장 편리한 방법을 사용하여 가장 시각적인 형태로 컴퓨터에 입력됩니다.

고급 프로그래밍 언어 개요

포트란(포트란). 1950년대 Jim Backus가 만든 최초의 컴파일된 언어입니다. 어셈블러로만 프로그램을 개발한 프로그래머들은 고성능 고수준 언어의 가능성에 대해 심각한 의구심을 드러냈기 때문에 포트란 컴파일러 개발의 주요 기준은 실행 코드의 효율성이었다. Fortran은 여러 가지 중요한 프로그래밍 개념을 최초로 구현했지만 효율적인 기계어 코드를 얻을 수 있는 가능성 때문에 프로그램 작성의 편의성이 희생되었습니다. 그러나 통계적 콤플렉스에서 위성 제어 패키지에 이르기까지 이 언어에 대해 수많은 라이브러리가 만들어졌기 때문에 Fortran은 많은 조직에서 계속 활발히 사용되고 있으며 현재 다음 Fortran R2k 표준에 대한 작업이 진행 중입니다. 2000. 다중 프로세서가 있는 병렬 슈퍼컴퓨터용 포트란 HPF(고성능 포트란)의 표준 버전이 있습니다.

소보(코볼). 60년대 초반에 개발된 경제 분야의 응용 및 비즈니스 문제 해결을 위해 컴파일된 언어입니다. 뛰어난 "상세함"으로 유명합니다. 연산자는 때때로 평범한 것처럼 보입니다. 영어구. Cobol은 다양한 컴퓨터에 저장된 많은 양의 데이터 작업을 위한 매우 강력한 도구를 구현했습니다. 외부 매체. 이 언어로 많은 응용 프로그램이 만들어졌으며 오늘날 적극적으로 활용되고 있습니다. Cobol 프로그래머가 미국에서 가장 높은 급여를 받는다고 해도 과언이 아닙니다.

알골(알골). 1960년에 만들어진 컴파일 언어. Fortran을 대체할 예정이었지만 복잡한 구조로 인해 널리 사용되지 않았습니다. 1968 년 Algol 68 버전이 만들어졌으며 기능면에서 여전히 많은 프로그래밍 언어보다 앞서 있지만 충분하지 않기 때문에 효율적인 컴퓨터적시에 좋은 컴파일러를 만드는 것은 불가능했습니다.

파스칼(파스칼). 현대 프로그래밍의 많은 아이디어를 창시한 Niklaus Wirth가 70년대 후반에 창안한 Pascal 언어는 여러 면에서 Algol과 유사하지만 프로그램 구조에 대한 여러 요구 사항을 강화하고 다음과 같은 경우 성공적으로 사용할 수 있는 기능이 있습니다. 대규모 프로젝트 생성.

기초적인(기초적인). 이 언어에는 컴파일러와 인터프리터가 있으며 세계에서 가장 인기 있는 언어입니다. 60년대에 교육용 언어로 만들어졌으며 배우기 매우 쉽습니다.

C(C). 이 언어는 Bell 연구소에서 만들어졌으며 처음에는 대중 언어로 간주되지 않았습니다. 동등하게 효율적이고 컴팩트한 프로그램을 만들 수 있고 동시에 특정 유형의 프로세서에 의존하지 않기 위해 어셈블러를 대체할 계획이었습니다.

C는 여러 면에서 파스칼과 유사하며 추가 자금직접적인 메모리 조작(포인터)용. 많은 응용 프로그램 및 시스템 프로그램과 잘 알려진 많은 운영 체제(11pgh)가 70년대에 이 언어로 작성되었습니다.

C++(C++). C++는 1980년 Bjarne Stroustrup이 만든 C 언어의 객체 지향 확장입니다. 프로그래머 생산성을 극적으로 향상시킨 많은 강력한 새 기능이 C 언어의 낮은 수준의 유산에 중첩되어 개발자로부터 높은 수준의 전문 교육이 필요한 복잡하고 안정적인 프로그램을 만들었습니다.

자바(자바, 자바). 이 언어는 C++를 기반으로 90년대 초반 5ip에 의해 만들어졌습니다. 모든 저수준 기능을 제거하여 C++ 기반 응용 프로그램의 개발을 단순화하도록 설계되었습니다. 하지만 주요 특징이 언어의 - 컴파일은 기계어 코드가 아니라 플랫폼 독립적인 바이트 코드로 이루어집니다(각 명령은 1바이트를 차지합니다). 이 바이트코드는 인터프리터를 사용하여 실행할 수 있습니다. 즉, JVM(Java Virtual Machine) 자바 가상 머신의 버전이 오늘날 모든 플랫폼용으로 만들어집니다. 많은 Java 머신이 존재하기 때문에 Java 프로그램은 소스 코드 수준에서뿐만 아니라 바이너리 바이트 코드 수준에서도 이식될 수 있습니다. 이것이 오늘날 Java가 BASIC 다음으로 세계에서 인기 있는 2위를 차지하는 이유입니다.

이 언어의 개발에 특히 주의를 기울이는 것은 두 가지 영역입니다. 모바일 기기가전제품에 내장된 마이크로컴퓨터(Jini 기술) 및 다양한 운영 체제를 사용하는 글로벌 및 로컬 네트워크의 서버에서 실행할 수 있는 플랫폼 독립적인 소프트웨어 모듈 생성(Java Beans 기술). 지금까지 이 언어의 주요 단점은 Java 언어가 해석되기 때문에 성능이 낮다는 것입니다.

에서#(바다 샤프). 90년대 말에는 마이크로소프트, Anders Hejlsberg의 리더십은 C# 언어를 개발했습니다. 구현했다 최고의 아이디어 C와 C++, 그리고 자바의 장점. 사실, C#은 다른 Microsoft 기술과 마찬가지로 Windows 플랫폼에 중점을 두고 있습니다. 그러나 공식적으로는 다른 만국어와 별반 다르지 않으며, 회사에서도 이를 표준화할 계획이다. C# 언어는 빠른 개발을 위해 설계되었습니다. NET 응용 프로그램 및 Microsoft Visual Studio 시스템에서의 구현. NET에는 C#을 Windows 및 .NET 플랫폼의 내부 아키텍처에 연결하는 많은 기능이 포함되어 있습니다.

데이터베이스 프로그래밍 언어

이 언어 그룹은 주로 해결하는 작업에서 알고리즘 언어와 다릅니다. 데이터베이스는 균일한 구조를 가지며 단일 템플릿(일반적으로 표 형식)에 따라 구성되는 정렬된 레코드 집합인 파일(또는 파일 그룹)입니다. 데이터베이스는 여러 테이블로 구성될 수 있습니다. 디렉토리, 파일 캐비닛, 회계 일지 등의 다양한 정보를 데이터베이스에 저장하는 것이 편리합니다.

데이터베이스로 작업할 때 가장 자주 다음 작업을 수행해야 합니다.

§ 데이터베이스의 속성 생성/수정/테이블 삭제

§ 사용자의 요청에 따라 정보 검색, 선택, 정렬

§ 새로운 기록 추가

§ 기존 기록 수정

§ 기존 항목 삭제.

많은 양의 정보를 처리하고 특정 기준에 따라 레코드 그룹을 선택해야 할 필요가 있자 마자 첫 번째 데이터베이스가 아주 오래 전에 나타났습니다. 이를 위해 구조화된 언어가 만들어졌습니다. SQL 쿼리(구조적 쿼리 언어). 강력한 수학적 이론을 기반으로 하며 개별 레코드가 아닌 레코드 그룹을 조작하여 효율적인 데이터베이스 처리를 수행할 수 있습니다.

DBMS(Database Management Systems)는 대용량 데이터베이스를 효율적으로 관리하고 처리하기 위해 개발되었습니다. 거의 모든 DBMS에서 지원하는 것 외에도 SQL 언어또한 이 DBMS의 기능에 중점을 둔 고유한 언어가 있으며 다른 시스템으로 이식할 수 없습니다. 오늘날 세계에는 Microsoft(SQL Server), IBM(DB2) 및 Oracle의 세 가지 주요 데이터베이스 제조업체가 있습니다. 그들의 제품은 네트워크에서 동시에 수천 명의 사용자를 지원하는 것을 목표로 하며 데이터베이스는 여러 서버에 분산된 형태로 저장할 수 있습니다. 이러한 DBMS는 각각 특정 서버의 특성에 중점을 둔 고유한 SQL 언어를 구현하므로 다른 DBMS에 맞게 준비된 SQL 프로그램은 일반적으로 서로 호환되지 않습니다.

출현과 함께 개인용 컴퓨터이른바 데스크탑 DBMS가 탄생했습니다. PC 용 현대 데이터베이스 프로그래밍 언어의 조상은 dBase II DBMS로 간주되며 해당 언어가 해석되었습니다. 그런 다음 컴파일러가 만들어졌고 FoxPro 및 Clipper DBMS가 등장하여 이 언어의 방언을 지원했습니다. 오늘날 Microsoft Access는 가장 일반적인 데스크탑 DBMS가 되었습니다.

웹용 프로그래밍 언어

글로벌 네트워크의 적극적인 개발로 인기 있는 프로그래밍 언어의 많은 구현이 만들어졌으며 특히 인터넷에 맞게 조정되었습니다. 그들 모두는 특징이 다릅니다. 언어는 통역되고, 통역사는 무료로 배포되며, 프로그램 자체는 소스 텍스트에 있습니다. 이러한 언어를 스크립팅 언어라고 합니다.

HTML. 문서 작업에 대해 잘 알려진 언어입니다. 매우 간단하며 텍스트 서식 지정, 그림 추가, 글꼴 및 색상 설정, 링크 및 표 구성을 위한 기본 명령이 포함되어 있습니다. 모든 웹 페이지는 HTML로 작성되거나 HTML 확장자를 사용합니다.

등록. 1980년대에 Larry Wall은 Perl 언어를 개발했습니다. 대용량 텍스트 파일의 효율적인 처리, 텍스트 보고서 생성 및 작업 관리를 위한 도구로 고안되었습니다. Perl은 C 유형 언어보다 훨씬 강력합니다. 문자열, 배열, 모든 종류의 데이터 변환 도구, 프로세스 관리, 시스템 정보

PHP. Perl 스크립트를 적극적으로 사용했던 Rasmus Lerdorf는 1995년에 이 언어를 개선하고 단순화하고 내장 데이터베이스 액세스 기능을 추가하기로 결정했습니다. 그 결과 Personal Content Page/Forms Interpreter(PHP/FI)가 개발되었습니다. 2년 이내에 이를 기반으로 하는 프로그램이 50,000개 사이트에서 사용되었습니다. 1997년 Andy Gutmane와 Ziv Sourasky에 의해 크게 개선되었으며 PHP 3.0이라는 이름으로 이 언어는 전 세계의 역동적인 웹사이트 빌더들 사이에서 빠르게 인기를 얻었습니다.

tcl/ Tk. 80년대 후반에 John Austyraut는 인기 있는 Tcl 스크립팅 언어와 Tk 라이브러리를 고안했습니다. Tcl에서 그는 이상적인 스크립팅 언어의 비전을 실현하려고 노력했습니다. Tcl 언어는 일상적인 프로세스를 자동화하는 데 중점을 두고 있으며 유형이 지정되지 않은 추상 개체와 함께 작동하도록 설계된 강력한 명령으로 구성되어 있습니다. 시스템 유형과 무관하며 동시에 그래픽 인터페이스로 프로그램을 작성할 수 있습니다.

VRML. 1994년 VRML 언어는 인터넷에서 가상 3차원 인터페이스를 구성하기 위해 만들어졌습니다. 다양한 3차원 장면, 조명 및 그림자, 질감(물체의 덮음), 자신만의 세계 만들기, 그 주위를 여행하고 모든 면에서 "비행", 모든 방향으로 회전, 크기 조정, 조정을 텍스트 형식으로 텍스트 형식으로 설명할 수 있습니다. 조명 등

XML. 1996년 8월, 인터넷 기술 표준을 담당하는 WWW 컨소시엄은 오래 전에 IBM에서 만든 SGML 기술을 기반으로 문서 구조에 대한 범용 마크업 언어를 준비하기 시작했습니다. 새로운 언어를 XML이라고 합니다. 오늘날, 그것은 많은 시스템, 네트워크 및 응용 프로그램의 기초 역할을 하여 계층적으로 구성된 문서의 내부 구조의 다양한 측면을 사용자와 프로그램을 위한 투명한 텍스트 형식으로 제시하는 것을 가능하게 합니다. 가까운 장래에 HTML을 대체하게 될 것입니다.

모델링 언어

프로그램을 생성하고 데이터베이스 구조를 형성할 때 그것들을 표현하는 형식적인 방법이 자주 사용됩니다. 형식 표기법을 사용하면 데이터베이스 테이블, 필드, 프로그램 개체 및 생성된 모델을 기반으로 하는 프로그램의 전문 편집기 및 생성기 소스 텍스트. 이러한 시스템을 CASE 시스템이라고 합니다. IDEF 표기법을 적극적으로 사용하며 최근에는 그래픽 모델링 언어인 UML이 점점 더 인기를 얻고 있습니다.

기타 프로그래밍 언어

PL/ (PL/I). 60년대 중반에 IBM은 Fortran, Cobol 및 Algol을 최대한 활용하기로 결정했습니다. 그 결과 1964년에 프로그래밍 언어 원(Programming Language One)이라는 새로운 컴파일된 프로그래밍 언어가 탄생했습니다. 많은 독특한 솔루션이 이 언어로 구현되었으며, 그 유용성은 33년 후인 메이저 시대에야 평가될 수 있습니다. 소프트웨어 시스템. 기능면에서 PL / I은 다른 많은 언어(C, Pascal)보다 훨씬 강력합니다. 예를 들어, PL/I에는 계산의 정밀도를 지정하는 고유한 기능이 있습니다. C++ 및 Java에도 해당 기능이 없습니다. 이 언어는 현재 IBM에서 계속 지원됩니다.

잡담(스몰톡). 이 언어에 대한 작업은 XEROX Corporation의 연구실에서 1970년에 시작되어 10년 후에 종료되어 SMALLTALK-80 인터프리터의 최종 버전으로 구현되었습니다. 이 언어는 구문이 매우 간결하고 객체 개념에만 기반한다는 점에서 독창적입니다. 이 언어에는 연산자나 데이터가 없습니다. 스몰토크에 포함된 모든 것은 객체이며 객체 자체는 오로지 메시지를 사용하여 서로 통신합니다. 매개변수 1과 함께 전송되며, 이는 숫자 상수가 아니라 객체로 간주됨). "연산자" 분기를 제외하고 더 이상 제어 구조가 없습니다. 표준 개체), 매우 간단하게 모델링할 수 있지만 언어로 되어 있지 않습니다. 오늘날 VisualAge for Smalltalk는 IBM에서 활발하게 개발되고 있습니다.

LISP(리스프). John McCarthy가 1960년에 만든 인터프리터 프로그래밍 언어입니다. 목록 형식의 데이터 구조에 중점을 두고 대량의 텍스트 정보를 효율적으로 처리하도록 구성할 수 있습니다.

프롤로그(프롤로그). Alan Colmeroe가 70년대 초반에 만들었습니다. 술어 미적분학 이론의 수학적 모델을 기반으로 하는 이 언어의 프로그램은 일련의 사실과 규칙으로 구축된 다음 Prolog가 도입된 규칙을 사용하여 증명하려고 시도할 것이라는 진술이 공식화됩니다. 사람은 문제의 구조만 설명하고 Prolog 자체의 내부 "엔진"은 검색 및 일치 방법을 사용하여 솔루션을 찾습니다.

에이다(지옥). 영국 시인 Byron과 그의 먼 친척 Anabella Milbank의 딸인 Lady Augusta Ada Byron의 이름을 따서 명명되었습니다. 1980년에 미 국방부의 수백 명의 전문가가 Jean Ishbia가 이끄는 소규모 그룹이 개발한 17개 옵션 중에서 이 특정 언어를 선택했습니다. 그는 당시 펜타곤의 모든 요구 사항을 충족했으며 오늘수십억 달러가 개발에 투자되었습니다. 언어 자체의 구조는 파스칼과 유사합니다. 에 대한 엄격한 액세스 제어 수단이 포함되어 있습니다. 다른 수준사양에 따라 제어 구조의 힘은 한계에 도달합니다.

앞으로(요새). 1970년대 Charles Moore가 적은 양의 메모리를 가진 컴퓨터에서 효율적으로 구현될 수 있는 강력한 프로그래밍 도구를 가진 언어를 만들려고 시도한 결과, 컴파일러는 매우 빠르고 컴팩트한 코드를 생성할 수 있습니다. 어셈블러. 그러나 이해의 어려움 프로그램 텍스트, 특이한 형식으로 작성되어 오류를 찾기가 매우 어려웠고 C의 출현으로 Forth 언어는 잊혀졌습니다.

결론

컴퓨터 프로그램은 프로그래밍(프로그래밍) 과정에서 훈련받은 프로그래머가 만듭니다. 우리는 프로그램이 컴퓨터를 제어(특정 작업 수행)하는 데 필요한 논리적으로 정렬된 명령 시퀀스라는 것을 알고 있으므로 프로그래밍은 특정 작업을 해결하는 데 필요한 명령 시퀀스를 생성하는 것으로 귀결됩니다.

서지

1. Simonovich S. V. 정보학 기초 과정 2판 "Peter" M., St. Petersburg, Rostov-on-Don-2006

2. A.A. Stepanov Informatics 4th edition "Peter" M., St. Petersburg, Rostov-on-Don, Kyiv-2005

3. B.V. Sobol, A. B. Galin 정보학 교과서 Rostov-on-Don, "Phoenix" 2005

4. 아이.아이. 세르게예바, A.R. Muzalevskaya Informatics, M. Forum-Infa-Moscow, 2006

5. 엘. 주코바, E.G. Burda Informatics, M. 2007, Nauka-Press

Allbest.ru에서 호스팅

유사한 문서

    구조화 프로그래밍 및 문제 해결 알고리즘의 개념. 기계어에서 어셈블리 언어 및 고급 언어에 이르기까지 프로그래밍 언어 개발의 간략한 역사. C#의 절차적 프로그래밍. 모델링 방법 및 프로그램.

    튜토리얼, 2010년 10월 26일 추가됨

    프로그래밍 언어의 본질과 기능, 그 진화와 인기 평가 다양한 종류. 컴파일, 해석 또는 혼합 언어로 개발된 컴퓨터 프로그램의 기능. 프로그래밍 언어의 기본 클래스 및 계층.

    프레젠테이션, 2013년 1월 23일 추가됨

    저수준에서 현재까지의 프로그래밍 언어의 진화. 2세대 프로그래밍 언어 - 어셈블러. 명령형, 기능형, 논리적 및 객체 지향 언어. 기계 독립. 프로그래밍 패러다임.

    프레젠테이션, 2013년 10월 14일 추가됨

    프로그래밍 언어의 분류. 순환 구조의 사용 및 반복 프로세스의 구현. C, C++, Java, C# 언어 사이클의 알고리즘 구조. 현대 고급 프로그래밍 언어의 특징과 그 응용.

    학기 논문, 2009년 11월 13일 추가됨

    프로그래밍 언어의 특성과 속성. 객체 지향 프로그래밍 언어의 진화에 대한 연구. OOP 메커니즘의 진화 맵 구성. 사용자 인터페이스의 기능을 위한 개념적 모델의 개발.

    학기 논문, 2014년 11월 17일 추가됨

    일반 정보 및 프로그래밍 언어 수준 고려. 개발의 역사, 프로그래밍 언어 사용에 대해 잘 알고 있습니다. Assembler, Pascal, C, C++, Fortran, Cobol, BASIC, SQL, HTML, Java와 같은 언어의 장단점에 대한 개요.

    학기 논문, 2014년 11월 4일 추가됨

    프로그래밍 언어의 기본 개념, 데이터 입력 메커니즘. 프로그래밍 언어 및 번역 방법에 대한 설명. 유한 오토마타 및 변환기. 일반적인 구문 분석 방법. 언어 번역을 설명하는 형식적인 방법.

    강의 과정, 2013년 4월 12일 추가됨

    시뮬레이션 언어, 시스템 모델링 및 프로그래밍 언어의 체계화 기초. 알고리즘 언어 사용의 특징, 개발 접근 방식. 시뮬레이션 언어의 특성 및 효율성 분석.

    학기 논문, 2012년 3월 15일 추가됨

    현재 개발 단계 평가 컴퓨터 기술. 프로그래밍 언어의 개발, 분류, 정보 및 수준의 역사. 현대 프로그래밍 언어 개요: C, 그 종류, Pascal, Fortran, BASIC - 개발 동향.

    학기 논문, 2010년 12월 22일 추가됨

    현대 프로그래밍 언어에 대한 설명(Pascal, Assembler, C++, BASIC, Logo, Fort, Prolog, Refal 및 Lex). 프로그래밍 시스템(기계 지향 및 기계 독립 프로그래밍 시스템)의 개념, 목적 및 구성 요소.

컴퓨터 과학, 사이버네틱스 및 프로그래밍

기계 지향 언어에는 기호 코딩 어셈블러와 매크로 언어 매크로 어셈블러의 두 가지 수준이 있습니다. 이 요구 사항은 기계 독립적 언어를 사용할 때 크게 줄어듭니다. 이러한 언어의 구조는 자연어의 구조에 더 가깝습니다. 예를 들어 기계 지향 언어의 구조보다는 영어의 구조에 가깝습니다.

15 알고리즘 언어의 분류

현재 수백 가지 알고리즘 언어가 만들어졌으며 일반적으로 기계 유형과 해결되는 문제 유형에 대한 의존도에 따라 분류됩니다.

첫 번째 표시에 따르면 두 개의 큰 그룹으로 나뉩니다.기계 의존그리고 기계 독립적언어. 기계 의존 언어는 기계 지향 언어와 기계 지향 언어(오토코드)로 분류됩니다. 기계 지향 언어에는 기호 코딩(어셈블러)과 매크로 언어(매크로어셈블러)의 두 가지 수준이 있습니다.

니모코드에서 디지털 코드연산은 알파벳(니모닉)으로, 숫자 주소는 알파벳 이름으로 대체됩니다.

매크로 언어에서는 니모닉 언어 코드 외에도 기계어와 직접적인 유사점이 없는 매크로 명령이 사용됩니다(여러 명령 포함). 절단 길이 오리지널 프로그램, 매크로 언어는 프로그래머에게 약간의 생산성 향상을 허용합니다.

기계 종속 언어로 작업하는 프로그래머는 다음 사항에 익숙해야 합니다. 디자인 특징그가 프로그램을 작성하는 컴퓨터. 이 요구 사항은 기계 독립적 언어를 사용할 때 크게 줄어듭니다.

기계 독립적 언어로 작성된 프로그램은 컴퓨터 유형과 거의 무관합니다. 이들 언어의 구조는 기계지향 언어의 구조보다 영어의 구조와 같은 자연어의 구조에 가깝다. 따라서 이러한 언어는 비전문 프로그래머도 사용할 수 있습니다.

기계 독립 언어최근에는 일반적으로 두 그룹으로 나뉩니다. 가장 광범위한 첫 번째 그룹에는 절차 지향 언어가 포함됩니다. 두 번째로 가장 덜 개발된 그룹에는 도메인별 언어가 포함됩니다.

절차 지향적언어는 문제 해결을 위한 기성 알고리즘(절차)을 설명하는 역할을 합니다. 작업의 공식화와 문제 해결 방법을 잘 알고 있지만 프로그래밍의 복잡성을 모르는 전문가가 사용합니다.

문제 지향적언어는 문제 해결 방법에 익숙하지 않은 사용자를 위해 설계되었습니다. 이 경우 사용자는 문제를 공식화하고 초기 데이터를 설정하고 결과 출력에 필요한 형식을 표시해야 합니다. 입력된 정보를 기반으로 생성 프로그램은 문제를 해결하기 위한 작업 프로그램을 만들어야 합니다.

각 언어 그룹은 특정 수준이 특징입니다. 언어의 수준이 높을수록 특정 기계어에서 더 많이 추출된다고 믿어집니다. 다시 말해서, 언어의 명령문이 다른 언어의 명령문보다 더 많은 기계 명령을 시작하는 경우 언어는 상위 수준에 속합니다.


당신이 관심을 가질만한 다른 작품뿐만 아니라

39480. ETS의 연간 생산 프로그램 계산 103.5KB
전기 장비 공원은 지속적으로 성장하고 있습니다. 농업의 전기화 경험에 따르면 전기 유지 보수 서비스가 제대로 작동하지 않으면 전기 설비의 수만 증가하면 생산 효율성이 예상대로 증가하지 않으며 전기 장비의 잠재력을 최대한 활용할 수 없습니다. 전기 장비의 작동 신뢰성은 아직 농업 생산의 요구 사항을 충분히 충족시키지 못합니다. 더 나은 운영...
39481. 생명 안전. 프로그래머의 작업 조건 특성 1.09MB
이와 관련하여 노동 안전 및 인명 과학이 창안되어 발전하고 있습니다. 근로자의 건강 보호, 작업 조건의 안전 보장, 직업병 및 산업 재해의 제거는 인간 사회의 주요 관심사 중 하나입니다. 노동의 과학적인 조직화의 진보적인 형태의 광범위한 사용, 육체 비숙련 노동의 최소화, 직업병 및 산업적 질병을 배제하는 환경 조성의 필요성에 주의를 기울입니다.
39483. 건축 자재 과학에서 나노 물질의 사용 1.34MB
"나노"(그리스어 "나노"- 왜소)는 원래 단위의 10억분의 1을 나타내는 접두사입니다. 길이의 SI 단위는 미터이므로 나노미터는 10억분의 1미터 또는 백만분의 1밀리미터를 의미합니다.
39484. 고객의 신용 이력 유지를 위한 정보시스템 개발 3.89MB
입력 및 출력 데이터의 구조와 형식을 설정합니다. 조명 계산 컴퓨터 기술과 소프트웨어의 끊임없는 개발과 개선은 새로운 데이터 처리 기술의 출현으로 이어집니다. 따라서 처리 시스템의 효율성은 적절한 조직입력 및 출력 정보가 ​​흐릅니다. 출력 정보를 사용자에게 필요한 전자 형식과 인쇄된 문서 형식으로 제공합니다.
39485. 스포츠 단체 "Spring"의 활동 모니터링을 위한 자동화 시스템 개발 1.61MB
목적 및 주요 임무논문은 개발하는 것입니다 자동화 시스템청소년의 올바른 신체 발달 및 건강 개선 활동을하는 스포츠 조직 "Spring"의 활동 모니터링.
39487. MKDOU No. 17 부지 개발 3.14MB
일반 원칙웹 페이지 만들기 웹 페이지의 기본 요소입니다. 서론 인터넷에서 웹페이지를 개발하고 생성하면서 엄청난 짐이 쌓여왔다. 다양한 방법불행히도 많은 방법과 기술이 이제 조건부로 적용 가능합니다. 따라서 웹 사이트를 디자인하는 문제를 고려하는 것이 적절하고 실질적으로 중요해 보입니다. 현대적인 조건이 분야에서 축적된 모든 성과를 활용합니다.
39488. 운송 회사에서 상품 배송 비용을 최적화하기 위한 자동화 시스템 구축 882.5KB
실제로 상품 이동의 물류 조직은 경제적이고 효율적인 물리적 촉진 프로세스의 달성 및 유지를 보장하는 요소 및 조건에 대해 상품 및 서비스 순환의 모든 수준 및 모든 단계에서 영향을 미치는 정기적인 목적 프로세스로 구현됩니다. 시장에 상품의. 상품 순환의 효율성 향상을 목표로 하는 조직의 노력은 운영 및 전략의 두 가지 측면으로 축소될 수 있습니다.3] 후속 조정과 함께 최적의 상품 순환 모드 형성 ...

모든 프로그래밍 언어는 다양한 키워드, 기능 또는 클래스로 가득 차 있습니다. 일반적으로 메서드나 인수를 설명하는 영어를 모두 사용합니다. 일부 환경에서는 단순히 기계 기능의 약어가 있습니다. 이것은 개발의 발전을 크게 방해했습니다. 초기 단계. 이해 속도를 높이기 위해 준비되지 않은 사람도 이해할 수 있고 접근 가능한 단어와 그 조합으로 구성된 일련의 특수 알고리즘 프로그래밍 언어가 만들어졌습니다.

약간의 역사

첫 번째 컴퓨터와 통신하기 위해 0과 1로 구성된 기계 코드에 최대한 가까운 프로그래밍 언어가 사용되었습니다. 당연히 많은 명령을 기억하는 것은 매우 어려운 작업이었습니다. 또한 프로그래밍 중 메모리 할당 방법은 개발자의 어깨에 완전히 위임되었습니다. 그리고 작은 실수를 하면 처음부터 모든 것을 다시 해야 했습니다.

기계어에서 더 적합한 인간으로의 전환에서 저수준 프로그래밍 언어 어셈블러가 큰 역할을 했습니다. 니모닉 의미와 기호를 사용했습니다. 이것은 이제 개발자가 제어 명령과 숫자 코드의 조합으로 알고리즘을 보다 생산적으로 구축할 수 있기 때문에 개발자의 작업을 단순화했습니다. 그 모든 유연성과 능력에도 불구하고 언어는 여전히 배우기가 어려웠습니다.

교육 기관에서 개발 및 알고리즘을 가르치기 위해 BASIC 프로그래밍 언어의 도입이 시작되었습니다. 그것은 이미 많은 명령, 학생이 이해할 수 있는 핵심 단어를 포함했습니다. BASIC은 여전히 ​​프로그래밍의 기초를 배우는 데 사용됩니다.

최초의 알고리즘 프로그래밍 언어인 Algol의 생성으로 알고리즘 개발이 크게 가속화되었습니다.

알고리즘이란 무엇인가

건조한 이론과 정의에서 벗어나면 알고리즘은 주어진 문제를 해결하기 위한 일련의 작업입니다. 표현의 모든 화려함에도 불구하고 사람은 매일 이 개념을 접합니다. 예를 들어 차를 마시려면 다음 순서를 수행해야 합니다.

  1. 스토브에 주전자를 놓습니다.
  2. 끓을 때까지 기다리십시오.
  3. 끓는 물을 물에 붓습니다.
  4. 티백을 컵에 떨어뜨립니다.
  5. 필요한 양의 설탕, 우유 또는 꿀을 첨가하십시오.

이 시퀀스는 매우 간단하지만 가장 간단한 알고리즘입니다.

사람과 마찬가지로 컴퓨터도 특정 순서의 작업을 수행할 수 있습니다. 그러나 그것을 명확하게 이해하기 위해서는 컴퓨터의 경우 사람들에게 명백한 개념이 많지 않다는 점을 고려해야합니다. 또한 알고리즘은 필요한 모든 작업을 정확하게 설명해야 합니다. 이를 위해 알고리즘 언어가 제공되어 기계와 사람 사이에 일종의 다리 역할을 합니다.

알고리즘 언어의 속성과 특징

알고리즘은 컴퓨터에서 실행되어야 하는 알고리즘을 설명하는 공식 언어입니다. 일반적으로 어떤 기계 아키텍처에도 얽매이지 않습니다. 이것은 코딩을 크게 향상시키고 속도를 높이는 데 도움이 됩니다. 생생한 예로서 - 알고리즘 언어 BASIC. Pascal과 C는 또한 간단한 구문과 학습 속도 때문에 인기를 얻었습니다.

구조는 코드에 설명된 절차가 차례로 실행되는 방식으로 구현됩니다. 즉, 하나의 알고리즘 - 하나의 작업입니다. 이것은 C 및 Java에서 함수 또는 메소드를 작성하는 것과 유사합니다.

모든 코드는 이벤트 또는 변수를 설명하는 키워드로 작성됩니다.

기계 언어와 알고리즘 언어의 차이점

기계 종속 언어의 대표적인 대표자는 어셈블러입니다. 그것에 대한 프로그래밍은 번역가에게 무엇을, 어디로 이동할지 또는 채울 데이터 영역을 특수 레이블로 알려주는 것으로 귀결됩니다. 어셈블러 구문은 기계어에 가깝기 때문에 기계어에서 코드를 배우고 작성하기가 상당히 어렵습니다. 아래에서 다른 프로세서에 대한 지침이 어떻게 보이는지 확인할 수 있습니다.

따라서 사람이 읽을 수 있는 많은 키워드와 이름을 사용하여 형식 언어 또는 알고리즘 언어가 만들어졌습니다.

키워드

알고리즘 언어는 동작 또는 변수의 전체 지정에 대한 약어인 키워드로 구성됩니다. 이를 통해 코드의 길이를 줄이는 동시에 이해할 수 있습니다.

  • 조류. 모든 알고리즘은 이 키워드로 시작합니다. 이름을 설명하고 평가하는 데 필요한 인수와 결과가 무엇인지를 괄호 안에 지정합니다.
  • 인수. 알고리즘의 인수를 나타냅니다. 코드에서 사용할 값의 유형과 이름을 반영합니다.
  • 레즈. 이 키워드는 계산 결과를 배치해야 하는 변수의 유형과 이름을 나타내는 데 사용됩니다.
  • 시작알고리즘 실행의 즉각적인 시작을 나타냅니다. 키워드 con까지 지속됩니다. "시작"에서 "끝"까지의 전체 간격을 현재 알고리즘의 본문이라고 합니다.
  • 범죄자.알고리즘 실행이 완료되었음을 나타냅니다.
  • 주어진. 알고리즘 사용의 일부 기능과 뉘앙스 또는 제한 사항에 대해 설명합니다. 예를 들어, 여기에서 비교되는 문자열의 길이가 동일해야 함을 지정할 수 있습니다. "given" 키워드의 사용은 선택 사항입니다.
  • 필요한. 더 상세 설명알고리즘을 실행한 결과여야 합니다. "given"과 마찬가지로 생략할 수 있지만, 보다 명확하고 상세한 코드를 작성하기 위해서는 사용을 권장합니다.

주어진 키워드 목록은 알고리즘의 제목 및 본문 지정을 참조합니다. 그리고 이것은 변수에 대한 토큰이 어떻게 생겼는지입니다:

  • 표적. 정수 변수의 유형입니다. 범위는 -32768에서 32767까지 다양해야 합니다.
  • 물건. 실수. 예를 들어 지수 또는 분수 부분이 있습니다.
  • 통나무. 이 키워드는 "yes" 또는 "no"만 허용할 수 있는 boolean 유형 변수가 사용됨을 의미합니다.
  • 심.여기에는 다음 값이 포함됩니다. 단일 문자(예: "a", "3").
  • 문학. 전체 텍스트 문자열을 포함할 수 있는 문자열 변수입니다.
  • . 특정 유형의 데이터가 있는 테이블을 지정합니다. 다른 프로그래밍 언어의 배열과 유사합니다.

추가 서비스 단어

다음 단어 목록은 분기 및 반복 메커니즘을 구성하는 데 사용됩니다.

  • 을 위한. 특정 범위의 모든 값을 반복하는 데 사용됩니다. 주기, 즉 데이터가 있는 모든 절차의 연속 실행에 사용됩니다.
  • 출발 및 도착. "for" 루프에서 반복할 값 범위를 지정합니다.
  • 안녕히 계세요. 또한 여러 값을 반복하는 역할을 합니다. 특정 조건이 충족될 때까지 실행하는 데 사용됩니다.
  • Nts 및 kts. 알고리즘 언어의 "Нц"은 주기 본문의 시작을 의미하고 "кц"는 끝을 의미합니다. 이 두 키워드 사이에는 계산에 필요한 절차가 내장되어 있습니다.
  • 만약.이 단어의 도움으로 분기 구조가 구현됩니다. 따라서 주어진 조건에서 올바른 방향으로 프로그램의 과정을 결정할 수 있습니다.
  • 그렇지 않으면. "만약"과 짝을 이루는 두 단어. 또한 분기 메커니즘을 구축하십시오.
  • 선택. 편리한 도구동일한 유형의 여러 값에서 분기합니다. 키워드 "with" 및 "otherwise"와 함께 작동합니다.
  • 모두. 분기 메커니즘의 끝을 나타냅니다.
  • 입력. 이 키워드를 사용하면 사용자가 추가 처리를 위해 프로그램 실행 중에 변수 값을 입력할 수 있습니다.
  • 결론.화면에 데이터 출력을 생성합니다.

언어의 기본 구조

알고리즘 프로그래밍 언어는 편리한 형태로 계산 기능을 생성하는 다양한 구조를 구축하는 데 도움이 됩니다. 일반적으로 모든 언어는 몇 가지 특정 메커니즘과 그 조합을 사용할 수 있습니다.

시퀀스 구조

이러한 종류의 구조를 설계할 때 코드는 한 줄씩 직접 실행됩니다. 일반적인 예는 다음과 같이 표현할 수 있습니다.

ag 두 숫자의 합(arg 정수 a, b, res 정수 S)

출력 "S = ", S

이 예에서는 사용자가 입력한 두 숫자의 합을 계산합니다. 처음에 "alg"라는 단어는 알고리즘이 시작되고 있음을 나타내며 정확히 무엇을 하는지 간략하게 설명합니다. 대괄호는 프로그램이 작동하는 데 필요한 인수와 결과를 저장하는 컨테이너 역할을 할 변수를 정의합니다. 다음은 표현식 및 프로시저 실행의 즉각적인 시작을 나타내는 "begin" 키워드가 옵니다. "시작" 옆에 몇 가지 중간 변수를 정의할 수 있습니다.

알고리즘 본문에서 "input" 키워드는 사용자의 입력을 받아 변수에 씁니다. 그런 다음 그것들이 더해지고 그 합계가 S에 할당됩니다. 알고리즘이 끝나기 전에 "출력" 키워드를 사용하여 프로그램 결과가 화면에 표시됩니다. 알고리즘 언어의 이 표기법은 다른 많은 프로그래밍 환경에서도 일반적입니다.

분기 구조

프로그램 흐름이 항상 한 줄씩 실행될 필요는 없습니다. 상황에 따라 특정 변수의 값을 정의하거나 변경해야 하는 경우가 있습니다. 예를 들어, x = 0이라고 가정하면 x로 나누지 마십시오.

알고리즘 프로그래밍 언어는 이를 수행하기 위해 여러 구문과 "if", "then", "else" 또는 "choice" 키워드를 사용합니다. "if" 이후에는 다른 분기로 이동하기 위한 기준이 결정되는 조건이 설정됩니다. 예를 들면 다음과 같습니다.

따라서 다른 요인에 따라 변수의 값을 변경할 수 있습니다. 이 예가능한 모든 구현을 완전히 다루지는 않습니다. 따라서 구성 외에도 "그렇지 않으면"이라는 키워드가 사용됩니다. 조건이 선택한 기준과 일치하지 않는 경우 다른 분기로 이동할 수 있습니다.

그렇지 않으면 y = 0

즉, x가 0이 아닌 경우 y도 이전 값에 관계없이 0으로 재설정됩니다.

다중 선택을 위한 보다 편리한 수단은 "선택" 구성입니다. 여러 조건을 반복할 수 있습니다. 그 중 하나가 트리거되면 이에 대해 지정된 작업이 수행됩니다.

x = 0에서: y = 0

x = 1에서: y = 1

x = 2에서: y = 2

이 예는 x에 대한 변수 y의 종속성을 보여줍니다. 프로그램은 모든 데이터를 실행하고 x의 현재 값을 조건에 지정된 값과 비교합니다. 일치하는 항목이 발견되면 다음 작업을 수행합니다. 어떤 조건도 작동하지 않을 때 보다 유연한 솔루션을 위해 이 구성을 "otherwise" 키워드와 결합할 수도 있습니다.

주기

루프는 프로그래밍에서 매우 중요한 역할을 합니다. 이 디자인의 구현 없이는 거의 모든 개발이 불가능합니다. 일반적으로 루프는 여러 변수를 사용하여 동일한 유형의 작업을 반복적으로 수행하는 문제를 해결합니다. 이것은 예를 들어 알려진 공식에 따라 배열을 데이터로 채우거나 정렬하거나 일부 값을 계산할 때 편리합니다.

"while" 키워드를 사용하면 특정 조건이 충족될 때까지 특정 동작이 반복되는 루프를 구성할 수 있습니다. 예를 들어:

엔씨 바이 엑스<= 3

이 예에서 y는 x가 3보다 커질 때까지 증가합니다. 루프가 무한하지 않게 하려면 x가 각 패스에서 위쪽으로 변경되어야 합니다(예: 코드의 두 번째 줄에서 수행하는 작업).

"for" 키워드는 순차적으로 반복하여 일부 작업을 수행해야 하는 특정 범위의 숫자에 적용됩니다. 이 구성은 유한한 수의 요소를 알고 있을 때 사용됩니다.

구문은 다음과 같습니다.

1에서 3까지 x에 대한 nc

서비스 단어 "from" 및 "to"는 정렬해야 하는 값의 범위를 나타냅니다. 따라서 첫 번째 반복 x = 1에서 통과의 결과로 y도 값 1을 얻습니다. 그런 다음 컨트롤은 다시 시작 부분으로 이동하고 x는 이제 각각 2와 같고 y는 3이 됩니다 .

루프와 분기의 공동 구성을 사용하여 쉬운 문제를 해결하고 프로그래밍 언어 작업에 대한 지식을 얻기 위한 가장 간단한 알고리즘을 구축할 수 있습니다.

표준 기능

알고리즘 언어에는 이미 내장된 표준 기능이 있습니다. 숫자와 표현식을 사용하여 일부 일상적인 작업을 용이하게 할 수 있습니다. 알고리즘 언어의 일반 함수는 제곱근, 로그, 모듈, 사인, 코사인 등을 계산할 수 있습니다.

  • 절대 계수 - abs(x);
  • 제곱근 - sqrt(x);
  • 자연 및 십진 로그 - ln(x) 및 lg(x);
  • 최소 및 최대 두 숫자 — min(x,y), max(x,y);
  • 사인, 코사인, 탄젠트, 코탄젠트 - sin(x), cos(x), tg(x), ctg(x).

이러한 표준 기능을 사용하면 "자전거"를 만들지 않고 표준 도구로 가장 간단한 기능을 구현할 수 있습니다.

부울 표현식

부울 표현식은 작업이 조건을 충족하는지 여부를 반영합니다. 예를 들어, x > 0은 x가 1, 2, 25 또는 0보다 큰 숫자이면 참입니다. 알고리즘 언어에는 표준 수학 연산 외에 다음 키워드와 연산자를 사용할 수 있는 논리 표현식이 포함되어 있습니다.

  • 그리고.이는 키워드가 위치한 표현식이 (x>0) 및 (y>0)과 같은 특정 조건을 충족해야 함을 의미합니다.
  • 또는. 표현식 중 하나가 조건을 충족하지 않을 수 있습니다(예: (x>0) 또는 (y>0)).
  • 아니다. 표현식의 부울 값을 "반전"합니다. 예를 들어, 그러한 건설 ~ 아니다(x>0), x는 여전히 최대 0이어야 함을 의미합니다.

비교 연산자도 있습니다.<, >, = , 이를 결합하여 보다 크거나 같음과 같은 표현식을 작성할 수 있습니다.

알고리즘 언어를 위한 작은 프로그램

프로세스를 이해하기 위해 사용자와 상호 작용하는 프로그램을 구성할 수 있습니다. 그녀는 숫자를 요구할 것이고 기계는 그것을 제곱할 것입니다.

알고리즘 언어의 구성 요소에는 많은 키워드가 포함됩니다. 프로그램이 시작하는 첫 번째 일은 알고리즘의 발표입니다.

ag 숫자 제곱()

괄호 안에 사용자와 결과의 값이 될 인수를 지정해야 합니다. 또한 이러한 데이터 유형의 선언을 잊지 마십시오.

이제 기계는 정수 유형의 변수와 상호 작용해야 하고 작업 결과가 S라는 것을 알게 됩니다.

가장 먼저 할 일은 데이터를 입력하는 것입니다. 이것은 "input" 키워드를 사용하여 수행됩니다.

이제 알고리즘 본문에서 숫자의 제곱을 계산하는 데 사용할 여러 명령을 설명해야 합니다.

출력 "S = ", S

명령을 사용하여 할당을 구현할 수 있는 알고리즘 언어는 다음과 같이 작성됩니다. 따라서 x와 자체의 곱 값은 변수 S에 들어갑니다. 출력 라인은 화면에 결과를 보여줍니다. 글쎄, 그것은 모두 "con"이라는 키워드로 끝납니다. 전체 코드는 이제 다음과 같습니다.

ag 숫자 제곱(arg int x, res int S)

출력 "S = ", S

입력된 수의 제곱을 계산하는 알고리즘이 이렇게 간단한 방식으로 구현됩니다. 프로그램에 모든 연산의 합계를 추가하여 프로그램을 더 복잡하게 만들 수 있습니다. 그러면 다음과 같이 보일 것입니다.

alg 숫자 제곱 및 합 계산(arg 정수 x, res 정수 S)

주어진 | x > 0

필요 | S = 1*1 + 2*2+ … + x*x

시작 대상

입력 x; S:=0

nc 1에서 x까지

출력 "S = ", S

이 옵션은 루프, 중간 변수 a 및 "주어진" 및 "해야 하는" 섹션의 작업에 대한 간략한 표시를 사용합니다. 이제 프로그램에 숫자를 전달하면 프로그램은 이를 제곱하고 그 앞에 있는 모든 숫자의 제곱의 합을 인쇄합니다.

알고리즘 언어의 사용 및 개발

알고리즘 언어는 프로그래밍의 기본 규범과 규칙을 이해하기 위한 학습 환경에서 일반적입니다. 예를 들어, 많은 학교에서 개최되는 BASIC. 모든 명령이 차례로 차례로 실행되는 명령형 프로그래밍 언어와 같은 용어의 모든 패러다임을 완벽하게 반영합니다.

설명된 구성 및 키워드가 인간 언어에 근접하기 때문에 완전히 기계 또는 기계 종속 모델보다 코드를 작성하는 것이 훨씬 쉬워졌습니다. Algol 프로그래밍 언어 제품군은 구문이 여러 현지화로 제공되었기 때문에 개발 과정에서 가장 멀리 나아갔습니다. 러시아어로도 코드를 작성할 수 있었습니다.

일반적으로 알고리즘 언어의 발달은 프로그래밍 전반에 큰 영향을 미치고 많은 사람들이 개발자가 될 수 있도록 했습니다. 최신 도구는 점점 더 접근하기 쉽고 이해하기 쉬워지고 있습니다. 고급 프로그래밍 언어에는 이름과 제목을 말하는 기능이 점점 더 많이 포함되어 있습니다. 사용에 대한 제한이 점점 줄어들고 있습니다. 따라서 앞으로 더 이해하기 쉽고 자연스러운 개발 구현이 가능합니다.

객체 지향 프로그래밍

객체 지향 프로그래밍은 프로그램이 다른 객체와 상호 작용하는 데이터 구조 및 프로시저 세트를 포함하는 개별 객체 세트로 간주되는 프로그래밍 기술입니다.

파스칼, 비주얼 베이직자바

프로그래밍 원칙의 관점에서 프로그래밍 언어는 절차적, 기능적 및 논리적인 3가지 그룹으로 나눌 수 있습니다.

모든 프로그래밍 언어의 기본은 절차적 언어입니다. 가장 낮은 수준에서 컴퓨터(중앙 처리 장치) 작동의 기본은 프로세서가 수행해야 하는 작업을 명시적으로 나타내는 기본 명령만 실행할 수 있는 기능이기 때문입니다. 다른 유형의 언어는 절차적 프로그래밍 언어에 대한 추가 기능으로 생각할 수 있습니다. 이러한 언어(기능 및 논리)에는 특정 유형의 작업을 보다 효율적으로 프로그래밍할 수 있는 특정 수학적 모델이 포함되어 구현됩니다. 그러나 이러한 프로그래밍 언어의 번역기(컴파일러), 라이브러리 및 기타 수단은 여전히 ​​절차적 프로그래밍 언어를 통해 구현됩니다.

절차적 프로그래밍 언어

프로그램은 일련의 명령형 명령(데이터에 대해 수행할 변환을 명시적으로 지정)으로 구성됩니다. 데이터는 변수로 저장됩니다.

논리 프로그래밍 언어

이 유형의 프로그래밍 언어는 형식 논리와 부울 대수를 기반으로 합니다. 프로그램에 명시적 알고리즘이 포함되어 있지 않습니다. 문제의 조건과 논리적 관계에 대한 설명이 제공되며 이에 따라 프로그래밍 시스템은 추론 트리를 구축하고 문제에 대한 솔루션을 찾습니다.

함수형 프로그래밍 언어

함수형 프로그래밍은 목록과 함수의 사용을 기반으로 합니다. 변수가 전혀 없을 수 있습니다.

절차적 언어의 예는 파스칼 프로그래밍 언어입니다. Prolog는 논리적 프로그래밍 언어이고 Lisp는 함수형 프로그래밍 언어입니다.

논리적 및 기능적 프로그래밍 언어의 프로그램은 구현의 복잡성으로 인해 상대적으로 성능이 낮습니다.

저수준 언어(기계어 및 어셈블러)는 원칙적으로 절차적 프로그래밍 언어입니다. 그러나 이들은 "절차적"이라는 용어가 적합하지 않을 정도로 낮은 수준의 언어입니다. 오히려 명령형 프로그래밍 언어라고 부르는 것이 좋습니다.

대부분의 현대적인 절차적 프로그래밍 언어는 객체 지향 프로그래밍 방향으로 발전하고 있습니다.



객체 지향 프로그래밍

변수와 함수는 객체와 클래스로 그룹화됩니다. 이것은 프로그램의 더 높은 수준의 구조화 및 추상화를 달성합니다. 일부 개체(클래스)는 다른 개체(클래스)에서 생성될 수 있습니다. 객체 지향 언어에는 상속, 다형성, 후기 바인딩과 같은 개념이 있습니다.

Java 프로그래밍 언어가 특별한 장소를 차지합니다. 이것은 2가지의 우수한 특성 때문입니다. 첫째, 이 언어의 구현은 컴퓨팅 장치(컴퓨터, 휴대전화등) 및 특정 운영 체제. Java 프로그램은 Java Virtual Machine을 실행하는 모든 컴퓨터에서 실행할 수 있는 중간 코드로 변환됩니다. Java 프로그램을 다음으로 이식하려면 새로운 유형컴퓨터에서 Java 언어 및 기타 개발 도구용 컴파일러를 다시 작성할 필요가 없습니다. 또한, 다음을 가질 필요는 없습니다. 소스 코드 Java 프로그램을 다시 컴파일합니다. 새로운 컴퓨터 아키텍처를 위해 Java 가상 머신을 다시 작성하고 모든 컴퓨터 아키텍처에 대해 동일한 중간 코드에서 Java 애플리케이션을 실행하는 것으로 충분합니다.

둘째, Java는 표준 프로그램을 개발하는 데 사용할 수 있을 뿐만 아니라 인터넷 응용 프로그램(HTML 페이지 및 웹 서버)에 자연스럽게 포함되는 소위 애플릿 및 서블릿과 같은 특수 유형의 응용 프로그램에도 사용할 수 있습니다. 이것은 자바를 매우 높은 학위자율성을 부여하고 이를 미래의 프로그래밍 언어로 만듭니다. Java는 절차적 객체 지향 프로그래밍 언어입니다.

병렬 프로그래밍 언어는 절차적 프로그래밍 언어와 별도로 두드러집니다. 이러한 언어는 다중 프로세서 컴퓨터의 잠재력을 보다 충분히 활용할 수 있는 프로그램을 만들도록 설계되었습니다. 병렬 프로그래밍 언어의 프로그램은 자체 프로세서에서 각각 독립적으로 실행되고 적시에 데이터를 교환하는 여러 프로세스를 설명합니다. 트랜스퓨터(병렬 컴퓨터의 특별한 종류)를 위한 저수준 프로그래밍 언어의 예는 Occam 프로그래밍 언어입니다. 동시성을 지원하는 고급 프로그래밍 언어의 예로 Modula-2 프로그래밍 언어가 있습니다. 분명히 병렬 프로그래밍 언어는 과거의 일이 되고 있으며 프로그램 병렬화 기능은 프로세서 수준( 멀티 코어 프로세서) 또는 이러한 기능은 운영 체제에 의해 인계됩니다.

스크립트(태그 있음)-선언적 프로그래밍 언어

최근에는 주로 인터넷을 통한 정보 전송과 관련된 다양한 데이터 구조를 기술하기 위한 태그 언어가 보편화되고 있다. 이러한 언어 중 하나는 다양한 유형의 문서 구성에 사용되는 속성이 있는 트리 구조를 설명하기 위한 태그가 지정된 언어인 XML입니다. XML은 점차 HTML을 대체하고 있으며, MS Word 파일과 PDF 파일은 이를 기반으로 구축됩니다. 예를 들어 XML 파일을 변환하여 새 템플릿에 따라 형식을 다시 지정하기 위해 XSLT 태그 언어가 다시 개발되었습니다. XSL 파일(XSLT 변환 파일)의 구조는 XML 사양을 완전히 준수합니다. 기본적으로 XSLT는 함수형 프로그래밍 언어입니다.

파스칼 언어에는 대부분의 프로그래밍 언어와 마찬가지로 보조 알고리즘을 서브루틴으로 설계할 수 있는 도구가 있습니다. 이는 하위 알고리즘이 프로그램에서 반복적으로 반복되거나 이전에 개발된 알고리즘의 일부 조각을 사용할 수 있는 경우에 필요할 수 있습니다. 또한 서브루틴은 프로그래밍의 모듈 원리에 따라 큰 프로그램을 별도의 의미 부분으로 나누는 데 사용됩니다.

서브알고리즘을 서브루틴으로 사용하려면 파스칼 언어의 규칙에 따라 이름을 지정하고 알고리즘을 설명해야 합니다. 나중에 프로그램에서 호출해야 하는 경우 입력 및 출력 데이터 목록과 함께 적절한 위치에 해당 하위 알고리즘의 이름을 언급하여 하위 루틴을 호출합니다. 이러한 언급은 지정된 데이터로 작업하는 서브루틴에 포함된 명령문의 실행으로 이어집니다. 서브루틴이 실행된 후 서브루틴 호출 직후에 명령어로 작업이 계속됩니다.

Pascal에는 두 가지 유형의 하위 프로그램이 있습니다. 절차그리고 기능.

절차와 기능은 프로그램의 설명 섹션에 있습니다. 프로시저와 기능 및 프로그램의 다른 블록 간의 정보 교환을 위한 메커니즘이 있습니다. 입력그리고 출력 매개변수. 입력 매개변수는 호출 블록에서 서브루틴으로 전달되는 값(서브루틴에 대한 입력 데이터)이고, 출력 매개변수는 서브루틴에서 호출 블록으로 전달되는 값(서브루틴의 결과) .

동일한 서브루틴을 반복적으로 호출하여 다른 입력 데이터 세트로 동일한 작업을 수행할 수 있습니다. 설명 섹션에서 서브루틴의 텍스트를 작성할 때 사용되는 매개변수를 호출합니다. 공식적인, 그리고 그것을 부를 때 사용되는 것들 - 실제.

절차 설명 형식은 다음과 같습니다.

절차 프로시저 이름 (형식 매개변수); 절차 설명 섹션시작하다 프로시저의 실행 가능한 부분끝;

기능 설명 형식:

기능 함수 이름 (형식 매개변수):결과 유형; 기능 설명 섹션시작하다 함수의 실행 가능한 부분끝;

함수에서 자신의 변수를 선언할 수 있습니다. 이러한 변수를 현지의즉, 선언된 함수에서만 사용할 수 있습니다.

함수가 종료되면 소멸됩니다.

함수 외부에서 변수를 선언하는 경우(이러한 변수는 글로벌), 선언 없이 모든 함수에서 사용할 수 있습니다.

데이터 구조는 데이터 분류 및 데이터 간의 관계를 정의합니다.구조는 단순(기본) 또는 복잡(복합)일 수 있습니다. 상수, 변수, 배열, 레코드 및 테이블의 구조가 있습니다. 상수와 변수는 더 복잡한 데이터 조직 시스템의 분리할 수 없는 단일 요소인 기본 데이터로 간주될 수 있습니다.

끊임없는- 알고리즘을 구현하여 컴퓨터에서 문제를 푸는 과정에서 변하지 않는 숫자, 텍스트 또는 논리값입니다.

변하기 쉬운- 이것은 정보를 처리하는 과정에서 다른 값을 할당할 수 있는 데이터 구성의 단위입니다. 변수에는 이름(식별자 및 유형: 숫자, 기호(문자, 문자열), 논리)이 있습니다. 변수에는 유형을 나타내는 단어가 동반될 수 있습니다.

배열 -이것은 하나의 이름(배열 식별자)으로 통합된 동일한 유형의 요소 집합입니다. 배열의 주요 매개변수에는 유형(숫자, 기호, 논리), 차원(1차원, 2차원 등) 및 크기(각 차원의 배열 요소 수)가 포함됩니다.

재귀- 이것은 절차가 자체를 참조하는 알고리즘의 조직입니다. 절차 자체를 재귀라고 합니다.

소프트웨어의 분류 및 특성

이 프로그램은 컴퓨터의 작동을 제어합니다. 그 안에 저장된 모든 컴퓨터 프로그램 외부 메모리, 형태 소프트웨어(켜짐).

소프트웨어
시스템 소프트웨어 응용 소프트웨어
운영체제 유용 프로그래밍 시스템 범용 전문 프로그램 전문 프로그램
RAM에 로드되고 다른 프로그램의 실행을 구성하고 컴퓨터와 상호 작용합니다. 시스템 프로그램– 디스크 메모리를 최적화하고 바이러스로부터 보호합니다. 새로운 프로그램을 만들기 위해 설계된 텍스트 테이블, 그래픽, 음악, 데이터베이스 관리 전문가 시스템, 하이퍼텍스트, 멀티미디어 AISU - 자동 정보 관리 시스템, CAD - 컴퓨터 지원 설계 시스템, 교육 시스템, 지리 정보 검색
윈도우, 유닉스, 리눅스, 벌새 등 베이직, 파스칼, 델파이, 메모장, 워드, 엑셀, 페인트, 사운드포지, 액세스 "1C-enterprise", "나침반"-그림,

프로그래밍 언어- 이것은 컴퓨터의 프로그램이나 알고리즘을 정확하게 설명하는 데 사용되는 표기법입니다. 프로그래밍 언어는 인공 언어입니다. 제한된 수의 "단어"와 명령 (연산자) 작성에 대한 매우 엄격한 규칙에서 자연어와 다릅니다. 따라서 의도한 대로 적용할 경우 자연어의 특성을 나타내는 표현에 대한 자유로운 해석을 허용하지 않습니다.

기초적인. 1963년 Dartmouth 대학 교수 Thomas Kurtz와 John Kemeny에 의해 개발되었습니다. 이 언어는 프로그래밍을 가르치기 위한 것이며 주로 가정용 컴퓨터용 언어로 다양한 방언의 형태로 널리 퍼졌습니다. 다음 8가지가 언어 디자인에 사용되었습니다. 원칙: 1. 초보자가 쉽게 사용할 수 있어야 합니다. 2. 범용 프로그래밍 언어여야 합니다. 3. 숙련된 프로그래머를 위한 확장성을 제공해야 합니다. 4. 대화형이어야 합니다. 5. 명확한 오류 메시지를 제공합니다. 6. 작은 프로그램에서 빠르게 실행합니다. 7. 작업에 대한 이해가 필요하지 않습니다. 하드웨어 8. 운영 체제로부터 사용자를 보호합니다. 이 언어는 부분적으로 Fortran II와 부분적으로 Algol-60을 기반으로 했으며 시간 공유 및 나중에 텍스트 처리 및 행렬 산술에 적합하도록 추가되었습니다. 언어의 구문은 Fortran과 유사하며 많은 요소가 Fortran에서 명시적으로 차용한 것입니다. 언어는 학습을 위해 고안되었으므로 디자인은 가능한 한 단순합니다. 다른 프로그래밍 언어와 마찬가지로 키워드는 영어에서 가져옵니다. 문자열과 숫자의 두 가지 기본 데이터 유형이 있습니다. 변수 선언에는 특별한 섹션이 필요하지 않습니다(예: Pascal과 달리). 변수 선언은 변수의 첫 번째 사용입니다.

C 샤프 - C#(si sharp로 발음)은 객체 지향 프로그래밍 언어입니다. 1998-2001년에 Microsoft의 Anders Hejlsberg가 이끄는 엔지니어 그룹이 Microsoft.NET Framework용 응용 프로그램 개발 언어로 개발했습니다. C#은 C와 유사한 구문을 사용하는 언어 계열에 속하며 그 구문은 C++ 및 Java에 가장 가깝습니다. 언어는 정적으로 형식화되고 다형성, 연산자 오버로딩(명시적 및 암시적 캐스트 연산자 포함), 대리자, 특성, 이벤트, 속성, 제네릭 형식 및 메서드, 반복자, 클로저 지원이 있는 익명 함수, LINQ, 예외, xml 형식의 주석을 지원합니다. . C++, Java, Delphi와 같은 이전 제품에서 많은 것을 채택했습니다. C#은 사용 사례를 기반으로 소프트웨어 시스템 개발에 문제가 있는 것으로 입증된 일부 모델을 제외합니다. 예를 들어 C#은 C++와 달리 다중 클래스 상속을 지원하지 않습니다.


C++ 프로그래밍 언어 -컴파일된 정적으로 유형이 지정된 범용 프로그래밍 언어입니다. 다양한 프로그래밍 패러다임을 지원하지만 이전 C 언어와 비교하여 객체 지향 및 일반 프로그래밍 지원에 가장 큰 관심을 기울입니다. "C++"라는 이름은 단항 연산자 ++가 변수의 증가를 나타내는 C에서 유래했으며 1990년대에 가장 널리 사용되는 범용 프로그래밍 언어 중 하나가 되었습니다. C++을 만들 때 C 언어와의 호환성을 유지하려고 했습니다. 대부분의 C 프로그램은 C++ 컴파일러에서도 제대로 작동합니다. C++에는 C 구문을 기반으로 하는 구문이 있습니다.

장점 C++는 거의 모든 목적을 위한 효율적인 프로그램을 만들기 위한 도구를 제공하는 매우 강력한 언어입니다. 저수준 유틸리티다양한 목적을 위한 복잡한 소프트웨어 시스템에 대한 드라이버. 특히: C 언어와의 높은 호환성으로 모든 기존 C 코드 사용 가능(C 코드는 C++ 컴파일러로 최소한의 재작업으로 컴파일할 수 있습니다. C로 작성된 라이브러리는 일반적으로 콜백을 포함하여 추가 비용 없이 C++에서 직접 호출할 수 있습니다. 수준, C로 작성된 라이브러리가 C++로 작성된 코드를 호출할 수 있음). 전통적인 지시어 프로그래밍, OOP, 일반 프로그래밍, 메타프로그래밍(템플릿, 매크로)을 포함한 다양한 프로그래밍 스타일과 기술이 지원됩니다. 메모리, 주소, 포트로 낮은 수준에서 작업하는 것이 가능합니다. 템플릿을 사용하여 컴파일 단계에서 다양한 유형의 데이터, 해당 전문화 및 계산에 대한 일반화된 컨테이너 및 알고리즘을 생성하는 기능. 크로스 플랫폼. 사용 가능한 컴파일러 큰 수플랫폼, C++ 프로그램은 다양한 플랫폼과 시스템을 위해 개발되었습니다. 능률. 이 언어는 프로그래머가 프로그램 구조 및 실행의 모든 ​​측면을 최대한 제어할 수 있도록 설계되었습니다. 결점 부분적으로 C++의 단점은 조상 ​​언어인 C에서 상속되며 C와의 가능한 최대 호환성에 대한 초기 설정 요구 사항으로 인해 발생합니다. 다음과 같은 단점이 있습니다. 오류 유발 구문: C 파생 전처리기는 매우 원시적입니다. 모듈성에 대한 지원이 부족합니다(사실, 클래식 C에서는 언어 수준에 모듈성이 없고 해당 제공이 링커로 이동됨). 전처리기 헤더 파일 삽입(#include)을 통해 외부 모듈 인터페이스를 포함하면 많은 수의 모듈을 포함할 때 컴파일 속도가 심각하게 느려집니다(컴파일러에서 처리하는 결과 파일이 매우 크기 때문에).

파스칼. 1972년에 등장한 파스칼 언어는 세계 최초의 산술 기계를 발명한 17세기 프랑스의 위대한 수학자 블레즈 파스칼의 이름을 따서 명명되었습니다. 이 언어는 스위스 컴퓨터 과학자 Niklaus Wirth가 프로그래밍 방법을 가르치는 언어로 만들었습니다. 파스칼은 범용 프로그래밍 언어입니다. 언어의 특징은 엄격한 타이핑과 구조적(절차적) 프로그래밍 도구의 가용성입니다. 파스칼은 그러한 최초의 언어 중 하나였습니다. N. Wirth에 따르면 언어는 프로그래밍 분야에 기여해야 하므로 강력한 타이핑과 함께 가능한 구문 모호성이 Pascal에서 최소화되고 구문 자체는 언어를 처음 아는 사람이라도 직관적입니다. 파스칼 언어는 프로그램을 올바르게 작성하는 방법뿐만 아니라 문제 해결 방법을 올바르게 개발하고 문제에 사용된 데이터를 표현하고 구성하는 방법을 선택하는 방법을 가르칩니다. 1983년부터 Pascal 언어는 미국 고등학교의 컴퓨터 공학 과정에 도입되었습니다.

델파이 프로그래밍 언어(델파이)- 볼랜드가 개발하고 원래 볼랜드 델파이 패키지로 구현한 델파이 프로그래밍 언어(버전 7부터 환경의 언어를 델파이라고 함)를 사용하는 개발 환경 2003. Object Pascal은 본질적으로 객체 지향 확장을 통해 Pascal 언어의 후속 제품입니다. 델파이는 시각적 사용자 인터페이스 디자인을 제공하고 개발된 객체 지향 언어를 가지고 있습니다. 오브젝트 파스칼(나중에 Delphi로 이름이 변경됨) 단순성과 기능면에서 고유한 데이터베이스 액세스 도구입니다. Delphi 언어는 기능면에서 Basic 언어와 C++ 언어를 훨씬 능가했지만 동시에 매우 안정적이고 배우기 쉬운 것으로 나타났습니다(특히 C++ 언어와 비교할 때). 결과적으로 델파이 환경은 프로그래머가 자신의 구성 요소를 쉽게 만들고 전문적인 프로그램을 구축할 수 있도록 했습니다.

자바 1995년 5월 23일 Sun Microsystems에서 개발한 객체 지향 프로그래밍 언어입니다. 자바 프로그램은 바이트 코드로 변환되며, 자바 가상 머신(JVM)은 바이트 코드를 처리하고 명령어를 인터프리터로 하드웨어에 전달하는 프로그램입니다. 프로그램을 실행하는 이 방법의 장점은 운영 체제 및 하드웨어에서 바이트 코드가 완전히 독립되어 해당 가상 머신이 있는 모든 장치에서 Java 응용 프로그램을 실행할 수 있다는 것입니다. Java 기술의 또 다른 중요한 특징은 프로그램의 실행이 가상 머신에 의해 완전히 제어된다는 사실로 인한 유연한 보안 시스템입니다. 프로그램의 설정된 권한을 초과하는 모든 작업(예: 데이터에 대한 무단 액세스 시도 또는 다른 컴퓨터에 연결)은 즉시 중단됩니다. 종종 단점가상 머신의 개념은 가상 머신에 의한 바이트코드 실행이 자바 언어로 구현된 프로그램 및 알고리즘의 성능을 저하시킬 수 있다는 사실을 의미합니다. 최근 Java에서 프로그램 실행 속도를 약간 증가시키는 여러 가지 개선 사항이 있었습니다. 즉, 클래스 버전을 기계어 코드에 저장할 수 있는 기능과 함께 프로그램 작동 중에 바이트 코드를 기계어로 직접 변환하는 기술(JIT 기술) 사용, 표준 라이브러리, 가속화된 바이트코드 처리를 제공하는 하드웨어(예: 일부 ARM 프로세서에서 지원하는 Jazelle 기술)에서 플랫폼 지향 코드(네이티브 코드)의 광범위한 사용.

주요 특징들:자동 메모리 관리; 예외 처리를 위한 고급 옵션 풍부한 입력/출력 필터링 도구 세트; 배열, 목록, 스택 등과 같은 표준 컬렉션 집합; 유효성 간단한 수단네트워크 애플리케이션 생성(RMI 프로토콜 사용 포함) 다중 스레드 응용 프로그램을 만들기 위한 내장 언어 도구; 프로그램의 병렬 실행.

따라서 우리 시대에는 많은 언어가 있으며 각 언어에는 고유 한 특성이 있습니다.