fc2ブログ

[プログラミング言語]FORTRAN、COBOL

今回はC言語よりも古い高級言語である、FORTRANとCOBOLについて記載する。
FORTRANやCOBOLが開発された時代は個人にコンピュータが普及しておらず、またインターネットも存在しなかった。そのため、これらの言語は汎用的ではなく、用途に特化したものだった。

■FORTRAN
技術研究、軍事研究のための演算を行なうために開発された言語。
優れた演算用ライブラリや配列機能が多数用意され、その後開発されたC言語などの高級言語よりも簡単に計算を行なうことができる。また演算・計算に関しては、C言語よりも高速。現在でも、スーパーコンピュータなどで利用されている。
アセンブリしかなかった時代に開発された、世界初の高級言語である。

■COBOL
事務、会計作業用に開発された言語。
他の言語と比べ、英語をそのまま書くかのように記述できる。

例) ADD 1 TO X ⇒ Xという変数に1を加算する

このように、行いたい処理をそのまま記法に従って記載すれば良いため、プログラムに不慣れな人でも意味を読み取ることができる。他の言語に慣れている人にとっては、わかりづらい場合もある。

どのように統計を取ったのかは不明だが、開発から半世紀以上たった今でも世界のプログラムのうち半数以上が未だにCOBOLであるという統計結果もあり、いまだメインフレームを中心に第一線で活躍している。
スポンサーサイト



[プログラミング言語]C言語

今日はC言語について記載する。

■C言語の概要
1972年に開発された。一昔前までは、プログラミングを学習しようと思ったら、とりあえずC言語を学習すれば間違いないといわれるほどの人気を誇っていた。現在では、JavaやC++などの後継言語に主流を譲っている。
OSや他のプログラミング言語(Perl、Python、Rubyなど)がC言語で書かれていることも多い。

■C言語の特徴
・非常に高速。主だったプログラミング言語の中では最速の部類。
・HWの制御を行なうなど、かなり深い部分まで自分で制御できる。
・プログラムを動かす際に必要なリソースが少ない。
・ポインタ制御、メモリ開放制御などを手動で行なう必要がある。
・手続き型言語、関数型言語の特徴も持つ。

■派生言語
C言語は後世のプログラミング言語に大きな影響を与え、多数の派生言語も存在する。

・C++
「シープラ」、「シーたすたす」などと発音される。
C言語にクラスなどのオブジェクト指向の概念を付け加えた派生系。ただし、このときのオブジェクト指向の概念は現在とは違うらしい。C言語でできることはC++でも可能であり、互換性も有る。Cと同様に高速。
基本的にはC言語を学んでからC++を学ぶので、習得にかなり時間がかかるといわれている。また、C言語にオブジェクト指向を詰め込んだので、仕様がかなり複雑とされる。

・Objective-C
C言語をベースに、オブジェクト指向機能を持たせた言語である。
長らくマイナーな言語であったが、Apple社標準の言語として採用されたため、需要が急拡大している。逆に、Apple製品以外での出番はあまり無い。

・Java
C++、Objective-Cなどから、さらに使いやすく改良されたもの。詳細は後日。

・C#
Microsoft社が .Net のために、C++ とJavaを参考に作った言語。Javaとかなり似ているらしい。
Microsoft社が作成した言語なので、Windowsでアプリケーションを作成するときに適している。

[プログラミング言語]分類②

高級言語はさまざまな分類方法がある。
今回は、その一例を記載する。

■実行形態による分類
アセンブル言語同様、人間にわかるように作られた高級言語は、コンピュータに処理できるようにどうにかして書き換える必要がある。代表的な書き換え方法を記載する。

・コンパイル型言語
作成したソースファイルを、あらかじめコンピュータが実行できる形態に書き換えておく方式をコンパイル型といい、翻訳する処理のことをコンパイルと呼ぶ。コンパイルした結果作成された、コンピュータが処理できるファイルのことを、実行ファイルと呼ぶ。
あらかじめコンピュータが処理できる形に書き換えておくため処理が高速であるが、ソースを修正するたびにコンパイルが必要であり、プログラムの規模によっては、コンパイルにある程度の時間がかかる。

・インタプリタ型言語
作成したソースファイルを、逐一翻訳しながら実行していく形態を、インタープリタ型という。
コンパイルが不要というメリットがあるが、一般的に処理は遅い。

・ヴァーチャルマシン型
コンパイルの際、特定のHW、OSなどに依存するような箇所を、専用の仮想マシン用のコードに置き換えて、仮想マシン上で実行することでプラットフォームに依存せずに実行できるようにした言語である。そのまま違うOS上で稼動させることが出来るなど、移植性が極めて高いことが特徴。


■プログラミングパラダイムによる分類

プログラミング言語には、さまざまな計算モデル、抽象化方法が存在し、これらをパラダイムと呼ぶ。

・手続き型プログラミング
手続き型は、基本的な処理を実行したい順番で並べていき、そのまま上から処理している方式である。
非常に単純な考え方であり、一昔前の多くのプログラミング言語で利用さえれている。

例)FORTRAN、C言語、COBOL、BASICなど

・オブジェクト指向型プログラミング
オブジェクト指向型は、オブジェクトと呼ばれるデータや処理を一まとめにした抽象的な存在を定義し、複数のオブジェクト間で相互作用をさせることで処理を記述する手法である。既存のオブジェクトを利用し新しいオブジェクトを定義するなど、拡張性、生産性の高いプログラミングを行なうことが出来る。
最近の主流。

例)Java、C++など

・関数型プログラミング
関数型は、あらかじめ定義された関数を利用することで処理を記述する方法である。
手続き型と明確な区別は無く、関数型言語でも手続きがとして記述できるし、手続き型言語でも書き方によっては関数型として記述できる。

例)Scala、LISPなど

・論理型プログラミング
論理式の集合としてプログラムを記述する手法を、論理型プログラミングと呼ぶ。
手続き型などが、やりたいことをそのまま記載していくのに対し、論理型は、「AならB」,「AでないならC」といった具合に、ルールを論理式として記述していく。「AならB」,「BならC」⇒「AならC」というように、新たなルールを規定して、プログラムを作成していく。

例)Prologなど

[プログラミング言語]分類①

数百種類あるといわれるプログラミング言語。
今日はプログラミング言語の基本的な分類について記載する。

■低級言語
低級言語は、機械語とアセンブリ言語を指すことが一般的である。

・機械語
CPUが行なう処理機能を2進数で表し、そのままCPUが処理することが出来る言語が機械語である。
CPUを直接操作できるため極めて高速だが、この機械語をそのまま理解できる人間は"ほぼ"ない。
CPU毎に記述が違うので、移植性はほぼ無い。通常、機械語を理解する必要性は低い。

・アセンブリ言語
上記機械語を人間にわかるように、機能一つ一つの2進数の羅列を、簡単な単語に書き換えたもの。
アセンブリ言語をコンピュータで動作させる場合は、機械語に翻訳する必要がある。この処理をアセンブルとよび、アセンブルするソフトウェアをアセンブラと呼ぶ。
後述の高級言語よりも高速であり、HWレベルを直接的に操作できるため、高速性が重要となるプログラムの一部をアセンブル言語で記述することがある。しかしながら、コンピュータの処理能力向上に伴い、出番は減ってきている。

■高級言語
高級言語は、低級言語に比べてより処理を抽象化させ、機械語を意識せずにプログラムを行なえるようにした言語といえる。ユーザはCPUの機能の一つ一つを意識することなく、行ないたい処理をそのまま記述することが出来る。
一口に高級言語といってもかなりの数があり(数百種類)、言語により実行形態や思想が異なる。

差分バックアップと増分バックアップ

サーバの運用を行なうにあたり、バックアップは非常に重要である。
フルバックアップはよいとして、差分バックアップと増分バックアップの違いを記載する。

■差分バックアップ
差分バックアップは、前回のフルバックアップからの変更箇所を選んでバックアップする。
リストアを行なう場合は、まずフルバックアップをリストアし、最新の差分バックアップをリストアすることで、直近の状態へ復旧することができる。
前回のフルバックアップからの変更箇所は増え続けるため、フルバックアップを取り直さない限り、バックアップデータは増加し続ける。

■増分バックアップ
増分バックアップは、前回のフルバックアップ又は増分バックアップからの変更箇所を選んでバックアップする。
リストアをする際はフルバックアップをリストアしたあと、フルバックアップ後に取得した増分バックアップを全て順番にリストアしていく必要があるため、差分バックアップと比べて復旧に時間がかかる。
定期的に増分バックアップを取得する場合、バックアップ対象は増分バックアップ間に発生した変更箇所のみとなるため、データ量が肥大化していくことはない。

-------オマケ-------
■アーカイブビット
Windowsにおけるファイル属性の一つ。
バックアップの取得対象かを判断するのに利用される。

基本
・アーカイブビットが付与されているファイルはバックアップ対象となる。
・新規作成されたときや、変更が加えられたときにONとなる。(取得対象となる)

フルバックアップ
・フルバックアップの場合はアーカイブビットの値に関係なく全てのファイルが取得対象となる。
・バックアップを取った後、全てのアーカイブビットはOFFになる。(次は取らない)

差分バックアップ
・アーカイブビットがONのファイルのみ対象(新規、変更されたファイルのみ対象)
・アーカイブビットの操作は行なわない(つぎも取得対象)

増分バックアップ
・アーカイブビットがONのファイルのみ対象(新規、変更されたファイルのみ対象)
・取得したファイルのアーカイブビットをオフにする(次は取らない)

https://extf.lexu.site https://dtxx.rubberducky.site https://sxbq.bokepmobile.site https://fjpt.ophimhd.site https://nyff.bokepmobile.site https://rpri.workpolska.online https://hhgi.workpolska.online https://yfen.bokepmobile.site https://qeid.frisuba.online https://vmpb.waihui.online https://nxhb.lexu.site https://hwxv.lexu.site https://gavr.ophimhd.site https://vdak.frisuba.online https://gmhj.frisuba.online