ここから質問投稿すると、最大4000ポイント当たる!!!! >>

こんにちは。どうも、初めまして。

タイトルの通り、自分でプログラミング言語を作成したいのですが、
どこから手をつけていいのかわかりません。
作成するにあたって、必要になる知識などはありますか?
一応、扱える言語は「HSP3」と「ActiveBasic」です。
中学生なのでフリーの言語しか勉強していませんが、
Web講座を見て独学で勉強いたしました。

「HSP3」と「ActiveBasic」ではどちらの方が作りやすいですか?
やはり、「ActiveBasic」の方ですか?

ご回答のほどよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (8件)

★アドバイス


・スクリプト言語を自作したいようですね。
>(HSP3で作成:未定)→ActiveBasicで作成→C言語の勉強→作成
 この順で作成するより最初からC言語をお勉強しながら作り上げていくのはどうでしょうか。
 『HSP3』そのものがスクリプト言語のような感じですのでこれで作るのは無理・無駄です。
 『ActiveBasic』の方がしっかりとした言語です。
 コンパイルして機械語になった exe を作成してくれます。
・まずは言語の仕様を決めた方が良いです。
 私も11年前に簡単なインタプリタを作成しましたが、ころころと仕様を変えてしまったために
 完成するまでに時間が掛かりました。そのときに参考にしたのが N88-BASIC です。
 インタプリタを作るためにわざわざ N88-BASIC 日本語版を買いました。
 買った理由はマニュアルを参考にするためでした。
・仕様も最初は簡単なタイプが良いでしょう。
 例えば
 (1)変数は a-z の 26 個だけ。
 (2)if、else、switch の条件分岐。
 (3)for、while、do-whileの反復処理。
 (4)変数などは整数型、実数型、文字列型は最低限用意。
 (5)サブルーチンを定義、呼び出せる。
 (6)グローバル変数(A-Z)、ローカル変数(a-z)を定義できる。
 (7)組み込み関数の呼び出し、エラー処理。
 (8)その他
 こんな感じだけでも最初は難関です。
・最終的にC言語を使って作成するなら次のサイトを参考にして下さい。
 http://www.nakka.com/soft/ns/→『nScript』
 この言語の仕様は『言語仕様』のリンクを読んでみて下さい。
 http://www.nakka.com/soft/ns/ns.txt→『言語仕様』
 この言語のコンセプトは『C言語ライクな簡易スクリプト』だそうです。
 ソースファイルもダウンロードできます。
 無料のCコンパイラを用意さえすればきっとコンパイルできるでしょう。
 コンパイルが出来たらいろいろといじってみるのも良いな。
・あとこのようなスクリプト言語を作る前に『式』を評価する処理を作成して下さい。
 回答者No.6さんのアドバイスにありますね。まずは数式を評価(計算)する処理を
 作ります。数式には四則演算以外に関数を呼び出したら戻り値を使って評価する
 ようにします。ここがポイントです。→言語の仕様が式評価の場合。
 数式を評価できたらif、elseなどの条件分岐とfor、whileなどの繰り返し文も
 処理できるようにします。このとき内部でどのように繰り返し文を処理するように
 管理するかが一番難しいところです。楽な方法では独自の言語のソースを一旦
 中間コードにコンパイルしてその中間コードを擬似アセンブラのように処理します。
 この方法が処理速度が早くなり、作るときも実装しやすいと思います。

最後に:
・まずはしっかりとしたプログラミング言語を習得して下さい。
 『HSP3』は遊びのプログラム程度しか活用できません。
 『ActiveBasic』か、『C言語』を先にお勉強して下さい。
 あと数式を評価するタイプを先に作ります。
 これが出来れば独自の言語の1/4は完成したような感じです。多分1/4だな。
・以上。

参考URL:http://www.nakka.com/soft/ns/
    • good
    • 1
この回答へのお礼

アドバイスありがとうございます。
とりあえず、「HSP3」での言語作成はやめておきます。(向いていないようなので)

現在、勉強中の「Active Basic」での言語作成を目標に勉強したいと思います。
まだ自分自身「C言語」を学ぶ気も、余裕もありません。(現時点では)
もちろん、最終的には絶対「C言語」を学ぶ必要があると思うので、
目先にはおいておきたいと思います。

「Active Basic」で作るとなると文献資料などは極端に少なくなりそうですが、
自分なりにがんばってみたいと思います。

まず、数式を評価する処理について調べたいと思います。

お礼日時:2007/12/17 01:40

HPでmini言語の作り方を公開している方がおります、開発言語としては


C++のほうがよい。
下記URLを参照ください
http://www005.upp.so-net.ne.jp/h-masuda/cl/index …
    • good
    • 1
この回答へのお礼

情報提供ありがとうございます。
参考にさせていただきます。

お礼日時:2007/12/06 23:08

>どこから手をつけていいのかわかりません。



とのことですので、とりあえず電卓を作ってみるのはいかがでしょう。
数式を入力して、答えを返すアプリケーションです。
電卓(数式)も立派な言語ですし、これをクリアしなければプログラミング言語はまだ無理でしょう。

言語は何でも構わないでしょう。処理系を実装するということがどういうことかが分かっていれば、些細なことです。分かっていなければ、書籍の多いC言語、Javaにするのが無難です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

その電卓というのは、【1+1】などの【数式】を入力して答えを出す物ですよね?

では、一回作ってみます。

お礼日時:2007/10/22 18:28

ActiveBasicでは無いですが(十進BASICという言語で書かれています)BASICで書いたTiny(簡易)Basicインタプリタ言語がありました。


http://www.urban.ne.jp/home/kz4ymnk/seminar/basi …
下のほうの「言語処理系」の「Palo Alto Tiny BASIC インタプリタ + STARTREK.BAS」からダウンロードできます。何の解説も無いので自力で解読する必要はあります。
「数式処理」を読むと自力で電卓を作れる資料があります。電卓処理は言語処理の基本みたいなものですから勉強することをお勧めします。

言語を作るときに検索キーワードを書いておきます。
・文法を記述する「BNF記法」
・計算式の処理関連「逆ポーランド記法」
数式は必ず逆ポーランド記法が必要なわけでは無いですが、多くが採用しています。
・言語を解析する「構文解析」「意味解析」
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ActiveBasicでなくても十進BASICはN88-BASICなどとあまり文法的にかわらないので、すごくためになります。
数学処理や、そういう知識を全て吸収して(容易ではないと思いますが)
プログラミング言語作成に移りたいと思います。そうでないと作れ無いと思うので。

一つ一つ、Wikipediaで調べたりして知識を深めたいと思います。

やはり、C言語で作るとなるとC言語を最初から勉強しないといけないので(難しいと聞いているので)
いま、出来る力で精一杯がんばってみたいと思います。
C言語に入るのはそれからでも遅くないと思うので。
ですがおいおいやる予定なので、C言語を薦めて下さった方にも大変感謝しています。

予定としては、
(HSP3で作成:未定)→ActiveBasicで作成→C言語の勉強→作成
という風にしていきたいと思います。

締めの雰囲気ですが、まだ質問は打ち切りませんので、
よろしくお願いします。

お礼日時:2007/10/17 20:39

> >必要な道具は、紙とペンがあれば十分です。

(もちろん、ワープロでも可)
>
> それはどういう意味でしょうか?

「プログラミング言語」というのは、早い話が「仕様」のことです。仕様を作るだけなら筆記具以外の道具はいらないということです。
インタープリタとかコンパイラとかは、その仕様を実際のコンピュータの上で実現するための「言語処理系」であり、新しく作ったプログラミング言語で書かれたプログラムを、直接的か間接的かに関わらず、機械語に翻訳するためのトランスレータに過ぎません。

最終的にインタープリタを実装するにしても、まずは仕様を固めることが重要であることを理解してください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

なるほど、プログラミング言語=仕様をPCで具体化したものなんですね。
どういう仕様にするか考案して固めてみます。

お礼日時:2007/10/17 18:50

プログラミング言語を作ることはそこそこ難易度の高い事だとまず理解してください。

ようは、時間かかりますよ。勉強することがいっぱいありますよって事です。それ以上に面白いって良い点もありますが。
覚悟は出来ましたか?私も高校生2年のころに言語を作ったことがありますが、どれだけ困難かやってみないと分からないと思いますけど。でも、その頃よりは圧倒的にWEB等で入手できる情報量が多いので楽になっているとは思います。
コンパイラよりはインタプリタを作った方が楽なのでインタプリタをお勧めします。

まず読み物として、「プログラミング言語を作る」
http://itpro.nikkeibp.co.jp/article/COLUMN/20060 …
C言語とJAVAで解説されています。

大半がC言語かJAVAなので、C言語かJAVAを勉強したほうがWEB上の情報は多いです。
C言語だとこれとか。
http://kmaebashi.com/programmer/devlang/index.html
これとか。
http://879.hanac200x.jp/prog/makeint.htm
JAVAは詳しくないので省略します。

C言語のコンパイラは無料入手できます。ついでに入門。
http://homepage3.nifty.com/mmgames/c_guide/

実際には、「HSP3」と「ActiveBasic」でも作れるんですが、WEB上で参考になるサイトが無いのが問題ですね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

>プログラミング言語を作ることはそこそこ難易度の高い事だとまず理解してください。ようは、時間かかりますよ。勉強することがいっぱいありますよって事です。それ以上に面白いって良い点もありますが。

はい!承知しています。覚悟の上です。

C言語を勉強するしかないようですね。フリーでもあったんですね。

>実際には、「HSP3」と「ActiveBasic」でも作れるんですが、WEB上で参考になるサイトが無いのが問題ですね。

http://happytown.orahoo.com/yutibonsoft_hp/
ここでは作っているようです。「ActiveBasic」で。
まだ、「ActiveBasic」で作るのをあきらめたわけではないので。

おいおいやっていくなら、C言語の方でやっておいた方がいいみたいですが。

お礼日時:2007/10/17 13:35

書籍では


「いまどきのプログラム言語の作り方」
出版社: 毎日コミュニケーションズ (2005/11)
ISBN-10: 4839919232
ISBN-13: 978-4839919238
「スモールコンパイラの制作で学ぶプログラムのしくみ 」
出版社: 技術評論社 (2004/11)
ISBN-10: 4774121770
ISBN-13: 978-4774121772
なんかが分かりやすい。
Webサイトだと
http://itpro.nikkeibp.co.jp/article/COLUMN/20060 …
このあたりかな。
C++かJavaで作るのが普通でサンプル等も殆どがC/C++。たまにPascalかLispという感じだと思います。
構文解析や実行速度の問題でBASICで作る奴は居ないと思います。
※大昔のBASIC全盛時代には幾つかの例がありますが。

「HSP3」と「ActiveBasic」だと目くそ鼻くそな感はありますがActiveBasicの方がなんぼかマシな気はします。
※「HSP3」「ActiveBasic」がウンコだという意味ではなく目的にそぐわないという意味です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

書籍の方は本屋で探します。
wabサイトのほうも作成にあたってのことが書いてあり参考になりました、
ありがとうございました。

やはりCの方が無難なんでしょうね。
分かってはいたんですが、手をつける機会が無かったので。

「ActiveBasic」で作れないことは無いと思うのですが
やはり、目的にそぐわないようですね。

お礼日時:2007/10/17 13:21

> 「HSP3」と「ActiveBasic」ではどちらの方が作りやすいですか?



プログラミング言語を自作するのですよね。
それであれば、HSP3とかActiveBasicは関係ありません。

必要な道具は、紙とペンがあれば十分です。(もちろん、ワープロでも可)
コンパイラとかインタープリタを作るのであれば、話はまた別です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
>必要な道具は、紙とペンがあれば十分です。(もちろん、ワープロでも可)

それはどういう意味でしょうか?

>コンパイラとかインタープリタを作るのであれば、話はまた別です。

インタプリタ言語(または中間言語インタプリタ)を作りたいと思っております。
説明不足でしたすいません。

お礼日時:2007/10/17 13:09

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qビル・ゲイツはどうやってWINDOWSを作ったの?

WINDOWSのようなOSを作るにはどうしたらいいのでしょう?たとえば、MACでWINDOWSと同じ、もしくはそっくりなOSを作るには何が必要なんでしょう?高度な知識や時間なんてのは無しですよ(^_^)
それと、プログラミングにはやっぱりソフトが必要なんでしょうか?じゃあ、そのプログラミングソフトはどうやってできたんでしょう?
私、初心者の為、専門用語などは理解できませんので、その点踏まえてお答えいただけるとありがたいです。

Aベストアンサー

ひとつの答えかたとして数百万行のソースコードを書いて作った。
WindowsCEで150万行、XPの早大等に公開したのが500万行と言われています。

基本的に、これらはC言語とそこから派生進化した
C++言語やC#言語によって書かれています。

CやC++はMS版の開発環境もありますが、言語仕様そのものは
Microsoftで作られたものではありません。
しかし、MS CやVisual C++等の開発環境が
C言語による開発を促進したのは事実です。


MacOSとWindowsを比較した上でのWindowsと
同じないし、そっくりなOSを作る方法は
模倣を繰り返すしか無いでしょう。
あるいは技術を買い取ったり提携する。

技術的には非公開の技術の完全互換は不可能だし
技術仕様を知るためには膨大な費用がかかる。
現実的にはできないし、ナンセンスだと言える。

また、"WindowsのようなOS"の定義を
Windows用しかないような各種アプリケーションが動くOS
と考えた場合には、それはPowerPCのMacintoshでは不可能。

CPUの違いを吸収する仕組みを作ったとしても
それは、大幅に速度低下を招き、また完全な互換性確保は難しい。
むしろ、VirtulPC上でWindowsを動かすほうが楽。

ひとつの答えかたとして数百万行のソースコードを書いて作った。
WindowsCEで150万行、XPの早大等に公開したのが500万行と言われています。

基本的に、これらはC言語とそこから派生進化した
C++言語やC#言語によって書かれています。

CやC++はMS版の開発環境もありますが、言語仕様そのものは
Microsoftで作られたものではありません。
しかし、MS CやVisual C++等の開発環境が
C言語による開発を促進したのは事実です。


MacOSとWindowsを比較した上でのWindowsと
同じないし、そっくりなOSを作...続きを読む

Q実行ファイル(.exeファイル)の作り方を教えて!

コマンドファイル(.bat)を作成しているのですが、見知らぬ方に簡単に変更される困っています。
そこで、(変更されないようにするにはと)思いついたのが実行ファイル(.exeファイル)です。
しかし、作り方が分かりません・・・

誰か教えて下さい。

Aベストアンサー

念のために、通常BATファイル等で作成したコマンドファイルをそのままEXEファイルには変換できません。
(そのようなtoolでもあれば別ですが)

通常、VBやCなどといったコンパイラ言語が必要になってきます。

そのような言語で書かれたソースファイルをコンパイラによってコンパイルするとOBJファイルなる物が作成され、それをLINK(リンカ)と呼ばれる物でOSに必要なファイルをくっつけてEXEファイル等にします。
(通常の物であれば一括してEXEファイルまで作ってはくれますが)

EXEファイルを作成するより適正なOSの元でファイルのアクセス管理を行った方が安全かつ簡単かもしれません。

それでも挑戦なさるのであればまず無償で手に入るコンパイラの入手をしましょう
BCC32が一番手頃ではないでしょうか。

参考URL:http://www.borland.co.jp/cppbuilder/freecompiler/

Qゲーム開発がしたい。学ぶべきはC++かC#か。

現在、小さな事務系ソフトウェア開発会社でプログラミングをやっている者です。

思う所あって、ゲーム系の会社への転職を考えています。
応募にあたって作品の提出が必要なことは存じていますが、
どの言語を勉強し、開発すべきかで迷っています。

開発したいゲームとしては、STGかRPGで考えています。
2Dか3Dかは特にこだわりがありません。

過去に行ったプログラミングは、ゲームの関係の薄いものばかりで、
「ゲーム開発」について本格的に学んだことはありません。
学生の頃はロボットを制御するために、C言語のプログラムを書いていました。
PCとマイコンのシリアル通信のために、C#でwindowsアプリケーションも作りました。
C++もほんの一時期だけ使っていました。
卒業してから日が浅いので、これらの知識はまだある程度あります。
会社ではaspxとJavaScriptでWebページの外面、内部の動作をVBで行なっています。

触れたことのあるプログラミング言語を理解度順に並べたら多分こんな感じです。
VB≒C#>C>JavaScript>>>C++

C#とVBは似通った言語なので、VB中心の現在でもなんとなく理解できます。
現在最もメジャーらしいC++が最も経験が少なく、自信がないです。

軽く調べた感じでは、現在のゲーム開発はC++が多いが、
今後はC#やJavaも増えるかもという感じでどちらでゲーム開発を本格的に学ぼうか迷っています。

最もメジャーなC++を改めて学ぶべきか、
それともある程度使えるC#での開発方法を学ぶか、
あるいはその他の言語か、助言をお願いします。

また、開発の参考文献なども教えていただけると幸いです。
よろしくお願いします。

現在、小さな事務系ソフトウェア開発会社でプログラミングをやっている者です。

思う所あって、ゲーム系の会社への転職を考えています。
応募にあたって作品の提出が必要なことは存じていますが、
どの言語を勉強し、開発すべきかで迷っています。

開発したいゲームとしては、STGかRPGで考えています。
2Dか3Dかは特にこだわりがありません。

過去に行ったプログラミングは、ゲームの関係の薄いものばかりで、
「ゲーム開発」について本格的に学んだことはありません。
学生の頃はロボットを制御するために、C...続きを読む

Aベストアンサー

今後の動向不明なソーシャルならPHPとかJavaScriptとかWEB系です。
家庭用ゲームのメインの開発は今後もしばらくはC++が続くと思いますが、C#もツール開発用としては導入されていますし一部のゲームはC#で開発されています。
家庭用ゲーム機なら両方共出来ないとダメじゃないかと思いますね(片一方はある程度出来る程度で良いと思いますが)。

>開発したいゲームとしては、STGかRPGで考えています。
>2Dか3Dかは特にこだわりがありません。

こちらが拘るんじゃなくて向こうの会社が拘る問題ですが、今時は家庭用ゲーム機は3Dじゃないと厳しいと思います。
あと応募作品でSTGだとすごく多いので、それだけで評価が下がります。
逆にRPGは、規模が大きくなるためプログラミングスキルが直に反映されるので応募課題としては悪くないですが市販レベルの操作性に合わせて作ること事態が大変です。
WEB系をやっていたのならオンラインゲームを作るスキルも期待されるでしょう。

とりあえず、どのぐらいのものが作れるかリアルタイム性のあるものを作るということがどういうことなのか理解するためにDXライブラリをご紹介しておきます。
これでラクラクとゲームを作れるようなら本格的にC++とDirectXやC#とXNAで応募作品を作れば良いのでは無いでしょうか?

「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/

同サイトのこっちの掲示板には業界人の回答者も出没します。
「C言語何でも質問掲示板 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewforum.php?f=3

今後の動向不明なソーシャルならPHPとかJavaScriptとかWEB系です。
家庭用ゲームのメインの開発は今後もしばらくはC++が続くと思いますが、C#もツール開発用としては導入されていますし一部のゲームはC#で開発されています。
家庭用ゲーム機なら両方共出来ないとダメじゃないかと思いますね(片一方はある程度出来る程度で良いと思いますが)。

>開発したいゲームとしては、STGかRPGで考えています。
>2Dか3Dかは特にこだわりがありません。

こちらが拘るんじゃなくて向こうの会社が拘る問題ですが、今...続きを読む

Q独自の検索エンジンを作るには!?

難しいと思いますが独自の検索エンジンを作成してみたいと思っています。

検索エンジンといっても自分のWebサイト内を検索するものではなくGoogleやYahoo!、A9のように全世界のWebを対象にした検索を行う検索エンジンのことです。

検索エンジンに関しては知識がないのですがDBと相性がいいPHPで作成できるのではないのかなと思っています。

そこで質問です。

PHPやPerlなどで検索エンジンを作成することは可能でしょうか?
個人が運営している検索エンジンサイトなどはあるでしょうか?
もし検索エンジンを運営することになった場合はどの位のスペックがあるサーバーが必要になってくるでしょうか?

です。どうぞよろしくお願いいたします。

Aベストアンサー

検索エンジンを個人でphpやperlで作ることは理論上は可能かと思いますが、現実的には厳しいかと思います。

その理由はページの取得にあります。検索エンジンは、大きく分けて2つの部分に分かれます。

・1つは、webページをまわってデータを取ってくる部分。

・もう1つは、検索(要求)された単語やフレーズに応じて、取ってきたwebページのデータから適切なページを選択、表示する部分。

で、本来の検索エンジンでは2つ目(ランキングの評価)が重要なのですが、個人でやる場合には1つ目が非常にハードルが高いです。

例えば、1つのページを取得するのに平均1秒かかるとすると、10億ページを取得するのに約31年もかかります(現在、世界中には数十億ページ以上あるようです)。この部分の高速化は、高速な回線を世界的に多数用意する必要があります。検索対象が日本だけだとしても、億を下らないページがあるでしょうから(最近blog流行ってページ数激増みたいですし)、個人レベルで取得するのはかなり難しいと思います(全ページの巡回だけで数年~数十年かかってしまうでしょう)。

この対策(?)としては、自分では取得せず、大手の取得結果を利用させてもらう考え方があります。
直接的な答えではありませんけど、例えばメタサーチエンジンのceek( http://www.ceek.jp/ )では、検索後をいろんなサーチエンジンに投げて、その結果を取りまとめて表示します。
このように大手の結果を使うのも含めて検討されてはいかがでしょうか?
# それでもとても大変だとは思いますが。

検索エンジンを個人でphpやperlで作ることは理論上は可能かと思いますが、現実的には厳しいかと思います。

その理由はページの取得にあります。検索エンジンは、大きく分けて2つの部分に分かれます。

・1つは、webページをまわってデータを取ってくる部分。

・もう1つは、検索(要求)された単語やフレーズに応じて、取ってきたwebページのデータから適切なページを選択、表示する部分。

で、本来の検索エンジンでは2つ目(ランキングの評価)が重要なのですが、個人でやる場合には1つ目が非常に...続きを読む

Qcssで「下よせ」ってどうやっていますか?

フロートのレフト、ライトはいいとして、

あるボックス要素内(A)に異なるボックス要素(B)をいれます。
この(B)を(A)の一番そこにはりつかせたい時にどうすれば
最もよいのでしょうか?

いいアイデアをご教授ください。

Aベストアンサー

こんなのはどうかな?

position: absolute;
bottom: 0px;

Qscanf("%s", buf);でスペースを含んだ文字

コンソールプログラムで
scanf("%s", buf);
を使用してユーザに入力された文字によって処理を行いたいのですが、このままではスペースを含む文字列がスペースの手前で切られてしまいます。
C:\Program Filesなどを入力可能にさせたい場合にはどのようにするのがベターですか?

Aベストアンサー

お任せください!
そもそもscanfを使うというのはお勧めでは
ありません。scanfは文字+改行文字が入力
されないと完了しないためです。
が、それは良しとしましょう。
scanfの書式ですが、

int n = scanf("%[^\r\n]",buf);

という便利な書式があります。
perlでもおなじみの書式ですね。
上記の山文字"^"より前が読み込ませたい文字の集まりで、ハイフン指定が出来ます。
"^"より後ろが読込みを停止させたい文字の集まりです。上記の指定は復帰改行以外の文字が現れるまで読み込みます、という書式です。
下記のような指定も出来ます。

int n = scanf("%[a-zA-Z0-9\\: \t^\r\n]",buf);

なお、戻り値は読み込んだ項目数ですので、
if(n >= 1)
{
}
で判断できますね。

Qint型からchar型への変換

タイトル通り、int型からchar型への変換の仕方がわかりません!><
どうしたらいいのでしょうか?

Aベストアンサー

#include <stdio.h>


char buf[5];
int no;

no = 10;
sprintf(buf, "%d", no);

Q拡張子をつくる

自分だけの拡張子を作ることは可能なのでしょうか?
可能ならどうやったら作ることができるのでしょうか?

どうして自分だけの拡張子を作りたいのかというと、今あるソフトウェアを作成しています。そこで、いろいろなファイルを保存したり読み込んだりするのですが、ユーザーにはいじられたくないのです。自分だけの拡張子をつくれば、ユーザーはそのファイルを開いたりすることはできないと考えたからです。

Aベストアンサー

> VB6.0の場合はどうしたらいいでしょうか?

手元のVB6.0では、
[ファイル]-[新しいプロジェクト]
「新しいプロジェクト」ダイアログ
「アプリケーションウィザード」を選択しOK。
適当に「次へ」で「完了」を行う。

と、

出来上がったソースでは、

| 'ユーザーコード : ここで、コモンダイアログコントロールの属性とフラグを設定します。
| .Filter = "すべてのファイル (*.*)|*.*"

となっていますから、ユーザーコードの部分を適当に編集してね。ってスタイルのようです。

Qint main()、void main()、void main(void)、int main(void)

今日、大学でC言語の講義の時間、先生が、

#include <stdio.h>

void main(void){

}

と宣言してプログラムを書くと教えていました。
main関数には、
main()
void main()
void main( void )
int main()
int main( void )

と、人によりいくつかの描き方があったりします。
どれが本当は正しいのでしょうか?
void mainはすべきではないとなんかの本で読んだのですが・・。

Aベストアンサー

通称C89という以前の言語規格(現行コンパイラの多くが準拠)では、下記のいずれかが正しい。
int main(int argc, char *argv[])
int main(void)

但し、最新のC言語規格(通称C99)では、
<ISO/IEC9899:1999>
or in some other implementation-defined manner.
</ISO/IEC9899:1999>
となっているので、処理系が戻り値のvoidを認めていればvoidも可。
# 組込み系などで戻り値を使わない環境もあるためでしょうか。

なので、コンパイラのマニュアルで戻り値のvoidにしていい/しろと書いてない限り、
voidは言語仕様的には正しくない。(でも動くものもある)

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。


人気Q&Aランキング