Lecture P3: Unix What Is an OS? Files

Total Page:16

File Type:pdf, Size:1020Kb

Lecture P3: Unix What Is an OS? Files Overview Lecture P3: Unix What is an OS? Files ■ Abstraction for storage (disks). ■ File manipulation commands. Processes. ■ Abstraction for processor (CPU). ■ Some useful commands. Interactions. ■ Between files and processes. ■ I/O redirection and piles. 2 Layers of Abstractions in Unix OS Operating Systems Bare hardware. Multics (1965-1970) Machine language. ■ Ambitious OS project at MIT. Kernel. ■ Pioneered most of innovations in modern OS. User level (C programming). – file system Command level (shell). – protection Window system. – virtual machines Hardware ■ A little ahead of its time. Machine Kernel P User Command Windows 6 7 Unix History Operating Systems Multics (1965-1970). Multics (1965-1970). Unix / Linux (Thompson and Ritchie 1969). Unix / Linux (Thompson and Ritchie 1969). ■ Simplicity and elegance. – C language, bootstrapped implementation DOS. – integrated command structure – simplified, integrated file system Macintosh. – used by most programmers ■ Continued development at AT&T (1970’s) and "shepherding it out." Windows. ■ ■ Berkeley "BSD" (1978-1993): TCP/IP. OS definition under litigation. ■ Various flavors of commercial Unix (1980-1990). ■ Linux gave it new life (1991 - present). 8 12 Files File Manipulation Commands / File. cat, more show the contents of a file % more xx ■ Sequence of bits. ■ A simple and powerful abstraction for bin lib etc u cp, rm, mv copy, remove, move permanent storage (disks). % cp xx yy copy file xx to yy ■ Extended for things beyond disks. % rm xx delete file xx aaclarke cs126 zrnye % rm * delete all files in current directory! "Everything in Unix is a file." % mv xx yy rename file xx to yy ls list file names Directory. files submit %ls list al files in current directory ■ Sequence of files (and other directories). % ls *.c list all files ending in .c %ls-tr list all files, reverse-sorted by date Filename. stock mandel % ls -l list all file details (permissions, size) ■ Sequence of directory names on the path from "/" to the file. mand32.txt /u/cs126/files/mandel/mand32.txt 13 14 File Manipulation Commands Processes mkdir, rmdir make or remove directory Process. % mkdir hello make a new directory named hello ■ An abstraction for the processor (CPU). ■ Almost every command is a process. pwd print name of current (working) directory Over 2,500 standard commands. cd change directory ■ Thousand more available. %cd.. to parent directory ■ EXTENSIBLE: can even add your own. %cd~ to my home directory %cd~xx to xx’s home directory chmod change read/write permissions % chmod 600 hello.c only you can read/write file hello.c % chmod 700 mandel for all files in directory mandel % chmod 644 index.html all Princeton students can read it 15 16 Unix Commands Unix Commands: Text Processing lpr send file to printer grep, awk, perl pattern matching % lpr hello.c print file hello.c sort sort the lines of a file man, apropos online documentation % man ls get help on using ls command diff print out any lines where two files differ cal, date, xclock time utilities emacs, latex text processing % cal 9 2000 display calendar for September, 2000 % emacs hello.c edit file hello.c % date display current date ispell text processing bc, xcalc calculators % ispell readme spell-checker % xcalc graphical version of scientific calculator maple, matlab scientific computing 17 18 Unix Commands: Programming Unix Commands: Specialized for COS 126 emacs, xemacs text processing emacs126, xemacs126 use our customizations as default % emacs hello.c edit file hello.c % xemacs hello.c & cc, lcc, gcc, C compilers enscript126 pretty-print C code g++, javac C++, Java compilers % enscript126 hello.c % gcc hello.c compile C program hello.c gcc126 compile with warnings gdb, jdb C and Java debuggers % gcc126 hello.c submit126 submit COS 126 assignment for grading % submit126 0 hello.c 19 20 Unix Commands: Multimedia Unix Commands: Communication acroread, ghostview display documents mail, pine email % ghostview xx.ps display PostScript file xx.ps % acroread yy.pdf display Acrobat file yy.pdf rn read newsgroups xv, gs display graphics netscape browse web % xv giraffe.gif display graphics file giraffe.gif % gs mand.ps display graphics mand.ps telnet, rlogin, ssh login to remote computer xfig create figures ftp, sftp download files audiotool play or record music soffice StarOffice: free Office clone 21 22 Multiprocessing I/O Redirection and Pipes Abstraction provided by operating system. ■ MULTIPLE "virtual" machines for your use. ■ Outgrowth of 1960s "time-sharing." For COS126. ■ One window for editor. Unix ■ One window for UNIX % emacs hello.c & commands. [1] 18439 Ampersand % netscape & indicates "do this [2] 18434 in the background" % jobs Note: can use ctrl-Z [1] + Running emacs hello.c and bg instead of & [2] - Running netscape 23 24 Filters and Pipes Shell Standard input, standard output. Command interface to UNIX. 3 ■ Abstract files for command interfaces. Just another programming language. mv file1 tmp; Redirection: ■ sequence of instructions a.out > saveanswer mv file2 file1; ■ Standard input from file. ■ variables sort < myfile > myfilesorted mv tmp file2 ■ Standard output to file. ■ branches, loops 4 Shell program to annoy Steve with email Piping: #!/bin/csh -f @ n = 0 ■ Connect standard output of one ls | wc -l > outputfile repeat 5 times while ($n < 5) command to standard input of the plotprog | lpr printf "Goodbye.\n" | next. gamblerall | avg email Shapiro mail -s "yo Hal!" [email protected] @ n = ($n + 1) Don't confuse redirection and piping. sleep 60 plotprog > lpr wait 1 minute end 5 25 26 Shell Graphics EXTENSIBLE: add another command. ANSI C does not directly support graphical output. ■ rename a.out ■ Need help from operating system. ■ or chmod 700 a file containing shell commands ■ In this course we use "PostScript" to get cool pictures. ■ Don’t worry about details yet. Unix Unix % gcc avg.c % mv a.out avg phoenix.Princeton.EDU% cat ifs.ps % gamblerall | avg | lpr %! 50 50 translate 0 0 moveto 512 0 lineto Primary use. 256 512 lineto closepath stroke ■ low overhead "programming" to manipulate files and invoke /pt {0 360 arc fill} def commands 125.0 250.0 5.0 pt 312.5 125.0 5.0 pt 156.2 62.5 5.0 pt 328.1 31.2 5.0 pt 414.1 15.6 5.0 pt showpage phoenix.Princeton.EDU% gs ifs.ps 27 28 Graphics Graphics ifs.c Game played on equilateral triangle, with vertices R, G, B. #include <stdio.h> #include <stdlib.h> ■ Start at R. #include <stdio.h> ■ Repeat the following: #define N 50000 B – pick a random vertex int randomInteger(int n) { ... } – move halfway between current point and vertex int main(void) { 2 int i, r; – draw a "dot" in color of vertex double x = 0.0, y = 0.0, x0, y0; 5 1 for (i = 0; i < N; i++) { What picture r = randomInteger(3); 3 emerges? 6 if (r == 0) { x0 = 0.0; y0 = 0.0; } else if (r == 1) { x0 = 512.0; y0 = 0.0; } 4 else { x0 = 256.0; y0 = 512.0; } x = (x0 + x) / 2.0; 0 y = (y0 + y) / 2.0; R G printf("%f %f\n", x, y); } return 0; } 29 30 Graphics Text output is boring. ■ Replace and add printf() statements to create PostScript. ■ Use gs to view PostScript file. ifs.c . printf("%%!\n 50 50 translate\n"); printf("/pt {0 360 arc fill} def\n"); printf("0 0 moveto 512 0 lineto "); draw enclosing printf("256 512 lineto closepath stroke\n"); triangle for (i = 0; i < N; i++) { . printf("%f %f 1.0 pt\n", x, y); } printf("showpage\n"); 31.
Recommended publications
  • GNU Emacs GNU Emacs
    GNU Emacs GNU Emacs Reference Card Reference Card Computing and Information Technology Computing and Information Technology Replacing Text Replacing Text Replace foo with bar M-x replace-string Replace foo with bar M-x replace-string foo bar foo bar Query replacement M-x query replace Query replacement M-x query replace then replace <Space> then replace <Space> then skip to next <Backspace> then skip to next <Backspace> then replace and exit <Period> then replace and exit <Period> then replace all ! then replace all ! then go back ^ then go back ^ then exit query <Esc> then exit query <Esc> Setting a Mark Setting a Mark Set mark here C-<Space> or C-@ Set mark here C-<Space> or C-@ Exchange point and mark C-x C-x Exchange point and mark C-x C-x Mark paragraph M-h Mark paragraph M-h Mark entire file C-x h Mark entire file C-x h Sorting Text Sorting Text Normal sort M-x sort-lines Normal sort M-x sort-lines Reverse sort <Esc>-1 M-x sort lines Reverse sort <Esc>-1 M-x sort lines Inserting Text Inserting Text Scan file fn M-x view-file fn Scan file fn M-x view-file fn Write buffer to file fn M-x write-file fn Write buffer to file fn M-x write-file fn Insert file fn into buffer M-x insert-file fn Insert file fn into buffer M-x insert-file fn Write region to file fn M-x write-region fn Write region to file fn M-x write-region fn Write region to end of file fn M-x append-to-file fn Write region to end of file fn M-x append-to-file fn Write region to beginning of Write region to beginning to specified buffer M-x prepend-to-buffer specified buffer
    [Show full text]
  • Emacspeak — the Complete Audio Desktop User Manual
    Emacspeak | The Complete Audio Desktop User Manual T. V. Raman Last Updated: 19 November 2016 Copyright c 1994{2016 T. V. Raman. All Rights Reserved. Permission is granted to make and distribute verbatim copies of this manual without charge provided the copyright notice and this permission notice are preserved on all copies. Short Contents Emacspeak :::::::::::::::::::::::::::::::::::::::::::::: 1 1 Copyright ::::::::::::::::::::::::::::::::::::::::::: 2 2 Announcing Emacspeak Manual 2nd Edition As An Open Source Project ::::::::::::::::::::::::::::::::::::::::::::: 3 3 Background :::::::::::::::::::::::::::::::::::::::::: 4 4 Introduction ::::::::::::::::::::::::::::::::::::::::: 6 5 Installation Instructions :::::::::::::::::::::::::::::::: 7 6 Basic Usage. ::::::::::::::::::::::::::::::::::::::::: 9 7 The Emacspeak Audio Desktop. :::::::::::::::::::::::: 19 8 Voice Lock :::::::::::::::::::::::::::::::::::::::::: 22 9 Using Online Help With Emacspeak. :::::::::::::::::::: 24 10 Emacs Packages. ::::::::::::::::::::::::::::::::::::: 26 11 Running Terminal Based Applications. ::::::::::::::::::: 45 12 Emacspeak Commands And Options::::::::::::::::::::: 49 13 Emacspeak Keyboard Commands. :::::::::::::::::::::: 361 14 TTS Servers ::::::::::::::::::::::::::::::::::::::: 362 15 Acknowledgments.::::::::::::::::::::::::::::::::::: 366 16 Concept Index :::::::::::::::::::::::::::::::::::::: 367 17 Key Index ::::::::::::::::::::::::::::::::::::::::: 368 Table of Contents Emacspeak :::::::::::::::::::::::::::::::::::::::::: 1 1 Copyright :::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • BUGS Code for Item Response Theory
    JSS Journal of Statistical Software August 2010, Volume 36, Code Snippet 1. http://www.jstatsoft.org/ BUGS Code for Item Response Theory S. McKay Curtis University of Washington Abstract I present BUGS code to fit common models from item response theory (IRT), such as the two parameter logistic model, three parameter logisitic model, graded response model, generalized partial credit model, testlet model, and generalized testlet models. I demonstrate how the code in this article can easily be extended to fit more complicated IRT models, when the data at hand require a more sophisticated approach. Specifically, I describe modifications to the BUGS code that accommodate longitudinal item response data. Keywords: education, psychometrics, latent variable model, measurement model, Bayesian inference, Markov chain Monte Carlo, longitudinal data. 1. Introduction In this paper, I present BUGS (Gilks, Thomas, and Spiegelhalter 1994) code to fit several models from item response theory (IRT). Several different software packages are available for fitting IRT models. These programs include packages from Scientific Software International (du Toit 2003), such as PARSCALE (Muraki and Bock 2005), BILOG-MG (Zimowski, Mu- raki, Mislevy, and Bock 2005), MULTILOG (Thissen, Chen, and Bock 2003), and TESTFACT (Wood, Wilson, Gibbons, Schilling, Muraki, and Bock 2003). The Comprehensive R Archive Network (CRAN) task view \Psychometric Models and Methods" (Mair and Hatzinger 2010) contains a description of many different R packages that can be used to fit IRT models in the R computing environment (R Development Core Team 2010). Among these R packages are ltm (Rizopoulos 2006) and gpcm (Johnson 2007), which contain several functions to fit IRT models using marginal maximum likelihood methods, and eRm (Mair and Hatzinger 2007), which contains functions to fit several variations of the Rasch model (Fischer and Molenaar 1995).
    [Show full text]
  • Emacspeak User's Guide
    Emacspeak User's Guide Jennifer Jobst Revision History Revision 1.3 July 24,2002 Revised by: SDS Updated the maintainer of this document to Sharon Snider, corrected links, and converted to HTML Revision 1.2 December 3, 2001 Revised by: JEJ Changed license to GFDL Revision 1.1 November 12, 2001 Revised by: JEJ Revision 1.0 DRAFT October 19, 2001 Revised by: JEJ This document helps Emacspeak users become familiar with Emacs as an audio desktop and provides tutorials on many common tasks and the Emacs applications available to perform those tasks. Emacspeak User's Guide Table of Contents 1. Legal Notice.....................................................................................................................................................1 2. Introduction.....................................................................................................................................................2 2.1. What is Emacspeak?.........................................................................................................................2 2.2. About this tutorial.............................................................................................................................2 3. Before you begin..............................................................................................................................................3 3.1. Getting started with Emacs and Emacspeak.....................................................................................3 3.2. Emacs Command Conventions.........................................................................................................3
    [Show full text]
  • Spelling Correction: from Two-Level Morphology to Open Source
    Spelling Correction: from two-level morphology to open source Iñaki Alegria, Klara Ceberio, Nerea Ezeiza, Aitor Soroa, Gregorio Hernandez Ixa group. University of the Basque Country / Eleka S.L. 649 P.K. 20080 Donostia. Basque Country. [email protected] Abstract Basque is a highly inflected and agglutinative language (Alegria et al., 1996). Two-level morphology has been applied successfully to this kind of languages and there are two-level based descriptions for very different languages. After doing the morphological description for a language, it is easy to develop a spelling checker/corrector for this language. However, what happens if we want to use the speller in the "free world" (OpenOffice, Mozilla, emacs, LaTeX, ...)? Ispell and similar tools (aspell, hunspell, myspell) are the usual mechanisms for these purposes, but they do not fit the two-level model. In the absence of two-level morphology based mechanisms, an automatic conversion from two-level description to hunspell is described in this paper. previous work and reuse the morphological information. 1. Introduction Two-level morphology (Koskenniemi, 1983; Beesley & Karttunen, 2003) has been applied successfully to the 2. Free software for spelling correction morphological description of highly inflected languages. Unfortunately there are not open source tools for spelling There are two-level based descriptions for very different correction with these features: languages (English, German, Swedish, French, Spanish, • It is standardized in the most of the applications Danish, Norwegian, Finnish, Basque, Russian, Turkish, (OpenOffice, Mozilla, emacs, LaTeX, ...). Arab, Aymara, Swahili, etc.). • It is based on the two-level morphology. After doing the morphological description, it is easy to The spell family of spell checkers (ispell, aspell, myspell) develop a spelling checker/corrector for the language fits the first condition but not the second.
    [Show full text]
  • Hunspell – the Free Spelling Checker
    Hunspell – The free spelling checker About Hunspell Hunspell is a spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding. Hunspell interfaces: Ispell-like terminal interface using Curses library, Ispell pipe interface, OpenOffice.org UNO module. Main features of Hunspell spell checker and morphological analyzer: - Unicode support (affix rules work only with the first 65535 Unicode characters) - Morphological analysis (in custom item and arrangement style) and stemming - Max. 65535 affix classes and twofold affix stripping (for agglutinative languages, like Azeri, Basque, Estonian, Finnish, Hungarian, Turkish, etc.) - Support complex compoundings (for example, Hungarian and German) - Support language specific features (for example, special casing of Azeri and Turkish dotted i, or German sharp s) - Handle conditional affixes, circumfixes, fogemorphemes, forbidden words, pseudoroots and homonyms. - Free software (LGPL, GPL, MPL tri-license) Usage The src/tools dictionary contains ten executables after compiling (or some of them are in the src/win_api): affixcompress: dictionary generation from large (millions of words) vocabularies analyze: example of spell checking, stemming and morphological analysis chmorph: example of automatic morphological generation and conversion example: example of spell checking and suggestion hunspell: main program for spell checking and others (see manual) hunzip: decompressor of hzip format hzip: compressor of
    [Show full text]
  • A Quick Reference to C Programming Language
    A Quick Reference to C Programming Language Structure of a C Program #include(stdio.h) /* include IO library */ #include... /* include other files */ #define.. /* define constants */ /* Declare global variables*/) (variable type)(variable list); /* Define program functions */ (type returned)(function name)(parameter list) (declaration of parameter types) { (declaration of local variables); (body of function code); } /* Define main function*/ main ((optional argc and argv arguments)) (optional declaration parameters) { (declaration of local variables); (body of main function code); } Comments Format: /*(body of comment) */ Example: /*This is a comment in C*/ Constant Declarations Format: #define(constant name)(constant value) Example: #define MAXIMUM 1000 Type Definitions Format: typedef(datatype)(symbolic name); Example: typedef int KILOGRAMS; Variables Declarations: Format: (variable type)(name 1)(name 2),...; Example: int firstnum, secondnum; char alpha; int firstarray[10]; int doublearray[2][5]; char firststring[1O]; Initializing: Format: (variable type)(name)=(value); Example: int firstnum=5; Assignments: Format: (name)=(value); Example: firstnum=5; Alpha='a'; Unions Declarations: Format: union(tag) {(type)(member name); (type)(member name); ... }(variable name); Example: union demotagname {int a; float b; }demovarname; Assignment: Format: (tag).(member name)=(value); demovarname.a=1; demovarname.b=4.6; Structures Declarations: Format: struct(tag) {(type)(variable); (type)(variable); ... }(variable list); Example: struct student {int
    [Show full text]
  • Lecture 2: Introduction to C Programming Language [email protected]
    CSCI-UA 201 Joanna Klukowska Lecture 2: Introduction to C Programming Language [email protected] Lecture 2: Introduction to C Programming Language Notes include some materials provided by Andrew Case, Jinyang Li, Mohamed Zahran, and the textbooks. Reading materials Chapters 1-6 in The C Programming Language, by B.W. Kernighan and Dennis M. Ritchie Section 1.2 and Aside on page 4 in Computer Systems, A Programmer’s Perspective by R.E. Bryant and D.R. O’Hallaron Contents 1 Intro to C and Unix/Linux 3 1.1 Why C?............................................................3 1.2 C vs. Java...........................................................3 1.3 Code Development Process (Not Only in C).........................................4 1.4 Basic Unix Commands....................................................4 2 First C Program and Stages of Compilation 6 2.1 Writing and running hello world in C.............................................6 2.2 Hello world line by line....................................................7 2.3 What really happens when we compile a program?.....................................8 3 Basics of C 9 3.1 Data types (primitive types)..................................................9 3.2 Using printf to print different data types.........................................9 3.3 Control flow.......................................................... 10 3.4 Functions........................................................... 11 3.5 Variable scope........................................................ 12 3.6 Header files.........................................................
    [Show full text]
  • A Tutorial Introduction to the Language B
    A TUTORIAL INTRODUCTION TO THE LANGUAGE B B. W. Kernighan Bell Laboratories Murray Hill, New Jersey 1. Introduction B is a new computer language designed and implemented at Murray Hill. It runs and is actively supported and documented on the H6070 TSS system at Murray Hill. B is particularly suited for non-numeric computations, typified by system programming. These usually involve many complex logical decisions, computations on integers and fields of words, especially charac- ters and bit strings, and no floating point. B programs for such operations are substantially easier to write and understand than GMAP programs. The generated code is quite good. Implementation of simple TSS subsystems is an especially good use for B. B is reminiscent of BCPL [2] , for those who can remember. The original design and implementation are the work of K. L. Thompson and D. M. Ritchie; their original 6070 version has been substantially improved by S. C. Johnson, who also wrote the runtime library. This memo is a tutorial to make learning B as painless as possible. Most of the features of the language are mentioned in passing, but only the most important are stressed. Users who would like the full story should consult A User’s Reference to B on MH-TSS, by S. C. Johnson [1], which should be read for details any- way. We will assume that the user is familiar with the mysteries of TSS, such as creating files, text editing, and the like, and has programmed in some language before. Throughout, the symbolism (->n) implies that a topic will be expanded upon in section n of this manual.
    [Show full text]
  • Finite State Recognizer and String Similarity Based Spelling
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by BRAC University Institutional Repository FINITE STATE RECOGNIZER AND STRING SIMILARITY BASED SPELLING CHECKER FOR BANGLA Submitted to A Thesis The Department of Computer Science and Engineering of BRAC University by Munshi Asadullah In Partial Fulfillment of the Requirements for the Degree of Bachelor of Science in Computer Science and Engineering Fall 2007 BRAC University, Dhaka, Bangladesh 1 DECLARATION I hereby declare that this thesis is based on the results found by me. Materials of work found by other researcher are mentioned by reference. This thesis, neither in whole nor in part, has been previously submitted for any degree. Signature of Supervisor Signature of Author 2 ACKNOWLEDGEMENTS Special thanks to my supervisor Mumit Khan without whom this work would have been very difficult. Thanks to Zahurul Islam for providing all the support that was required for this work. Also special thanks to the members of CRBLP at BRAC University, who has managed to take out some time from their busy schedule to support, help and give feedback on the implementation of this work. 3 Abstract A crucial figure of merit for a spelling checker is not just whether it can detect misspelled words, but also in how it ranks the suggestions for the word. Spelling checker algorithms using edit distance methods tend to produce a large number of possibilities for misspelled words. We propose an alternative approach to checking the spelling of Bangla text that uses a finite state automaton (FSA) to probabilistically create the suggestion list for a misspelled word.
    [Show full text]
  • SDL Tridion Docs Release Notes
    SDL Tridion Docs Release Notes SDL Tridion Docs 14 July 2019 ii SDL Tridion Docs Release Notes 1 Welcome to Tridion Docs Release Notes 1 Welcome to Tridion Docs Release Notes This document contains the complete Release Notes for SDL Tridion Docs 14. Customer support To contact Technical Support, connect to the Customer Support Web Portal at https://gateway.sdl.com and log a case for your SDL product. You need an account to log a case. If you do not have an account, contact your company's SDL Support Account Administrator. Acknowledgments SDL products include open source or similar third-party software. 7zip Is a file archiver with a high compression ratio. 7-zip is delivered under the GNU LGPL License. 7zip SFX Modified Module The SFX Modified Module is a plugin for creating self-extracting archives. It is compatible with three compression methods (LZMA, Deflate, PPMd) and provides an extended list of options. Reference website http://7zsfx.info/. Akka Akka is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event- driven applications on the JVM. Amazon Ion Java Amazon Ion Java is a Java streaming parser/serializer for Ion. It is the reference implementation of the Ion data notation for the Java Platform Standard Edition 8 and above. Amazon SQS Java Messaging Library This Amazon SQS Java Messaging Library holds the Java Message Service compatible classes, that are used for communicating with Amazon Simple Queue Service. ANTLR ANTLR is a powerful parser generator that you can use to read, process, execute, or translate structured text or binary files.
    [Show full text]
  • Spelling Correction: from Two-Level Morphology to Open Source
    Spelling Correction: from two-level morphology to open source Iñaki Alegria, Klara Ceberio, Nerea Ezeiza, Aitor Soroa, Gregorio Hernandez Ixa group. University of the Basque Country / Eleka S.L. 649 P.K. 20080 Donostia. Basque Country. [email protected] Abstract Basque is a highly inflected and agglutinative language (Alegria et al., 1996). Two-level morphology has been applied successfully to this kind of languages and there are two-level based descriptions for very different languages. After doing the morphological description for a language, it is easy to develop a spelling checker/corrector for this language. However, what happens if we want to use the speller in the "free world" (OpenOffice, Mozilla, emacs, LaTeX, ...)? Ispell and similar tools (aspell, hunspell, myspell) are the usual mechanisms for these purposes, but they do not fit the two-level model. In the absence of two-level morphology based mechanisms, an automatic conversion from two-level description to hunspell is described in this paper. previous work and reuse the morphological information. 1. Introduction Two-level morphology (Koskenniemi, 1983; Beesley & Karttunen, 2003) has been applied successfully to the 2. Free software for spelling correction morphological description of highly inflected languages. Unfortunately there are not open source tools for spelling There are two-level based descriptions for very different correction with these features: languages (English, German, Swedish, French, Spanish, • It is standardized in the most of the applications Danish, Norwegian, Finnish, Basque, Russian, Turkish, (OpenOffice, Mozilla, emacs, LaTeX, ...). Arab, Aymara, Swahili, etc.). • It is based on the two-level morphology. After doing the morphological description, it is easy to The spell family of spell checkers (ispell, aspell, myspell) develop a spelling checker/corrector for the language fits the first condition but not the second.
    [Show full text]